matplotlib
(一)Matplotlib数据可视化基本使用方法
(1)Matplotlib介绍 matplotlib图的类型:条形图(Bar graph),直方图(Histogram),散点图(Scatter plot),面积图(area plot),饼图(pie plot)
matplotlib.pyplot是一个用于python的2D图形绘制库,他可以在python脚本,shell,web应用程序服务器和其他图形用户界面工具包中使用。
有几个工具包可以扩展python matplotlib功能,其中一些是单独下载,其它可以与matplotlib源代码一起提供,
Basemap:地图绘制工具包,包含各种地图投影,海岸线和政治边界,
cartopy:它是一个映射库,具有面向对象的地图投影定义,以及任意点,线,多边形和图像个转换功能。
Excel tool:matplotlib提供与excel交换数据的应用程序,
MPlot3d:用于三维图
Natgrid:他是一个natgrid库的接口,用于对间隔数据进行不规则网格化。
#导入Matploylib库 from matplotlib import pyplot as plt #在notebook中画图 %matplotlib inline #画布上画图 plt.plot([1,2,3],[4,5,1]) #在画布上显示 plt.show()
加上相应的样式
from matplotlib import pyplot as plt
from matplotlib import style
style.use("ggplot")
plt.plot([1,2,3],[3,2,1],'r',label='line one',linewidth=5)
plt.plot([2,3,4],[3,2,4],'y',label='line two',linewidth=5)
plt.title('goldstine')
plt.xlabel('x')
plt.ylabel('y')
plt.legend()
plt.grid(True,color='r')
plt.show()
小结:首先介绍matplotlib的相关第三方工具包,然后3行绘制一个图,3行添加标题,坐标标签;然后添加样式网格和legend()
(二)条形图(Bar graph)
import matplotlib.pyplot as plt
plt.bar([0.25,1.25,2.25,3.25,4.25],[10,20,30,40,50],color='g',label='BMW',width=.5)
plt.bar([0.75,1.75,2.75,3.75,4.75],[30,40,50,60,70],color='r',label='audi',width=.5)
plt.title('goldstine')
plt.legend()
plt.xlabel('x')
plt.ylabel('y')
plt.show()
(三)直方图(Histogram)
import matplotlib.pyplot as plt
population_age=[22,55,62,45,21,22,34,42,42,4,2,102,95,85,55,110,120,70,65,55,111,115,80,75,65,54,44,43,42,4]
bins=[0,10,20,30,40,50,60,70,80,90,100]
plt.hist(population_age,bins,histtype='bar',color='r',rwidth=0.8)
plt.title('population_age')
plt.xlabel('x')
plt.ylabel('y')
plt.show()
(四)散点图(scatter plot) 用于反应两个变量的相关性
import matplotlib.pyplot as plt
x=[1,2,3,4,5,6,7,8,9,10]
y=[1,1,1,1,1,1,1,1,1,1]
xx=[10,9,8,7,6,5,4,3,2,1]
yy=[3,3,3,3,3,3,3,3,3,3]
plt.scatter(x,y,label='first scatter',color='y')
plt.scatter(xx,yy,label='second scatter',color='r')
plt.title('goldstine')
plt.xlabel('x')
plt.ylabel('y')
plt.legend()
plt.show()
(五)面积图 面积图也被称为堆栈图(stack plot)反映一个整体的多个相关组随时间的变化,(eatting,sleeping,working、playing)
plt.stackplot(days,sleeping,eating,working,playing,color=[])
import matplotlib.pyplot as plt
days = [1,2,3,4,5]
sleeping =[7,8,6,11,7]
eating = [2,3,4,3,2]
working =[7,8,7,2,2]
playing = [8,5,7,8,13]
#plt.plot([],[],color='m', label='Sleeping', linewidth=5)
#plt.plot([],[],color='c', label='Eating', linewidth=5) #创建空的线,单纯是要创建右上角的标签
#plt.plot(days,working,color='r', label='Working', linewidth=5)
#plt.plot([],[],color='k', label='Playing', linewidth=5)
plt.stackplot(days, sleeping,eating,working,playing, colors=['m','c','r','k'])
plt.xlabel('x')
plt.ylabel('y')
plt.title('Stack Plot')
plt.legend(["sleeping","eating","working","playing"])
plt.show()
(六)饼图(pie plot)
import matplotlib.pyplot as plt
slices = [7,2,2,13]
activities = ['sleeping','eating','working','playing']
cols = ['c','m','r','b']
plt.pie(slices, labels=activities, colors=cols, startangle=90, shadow= True, explode=(0,0.1,0,0), autopct='%.1f%%')
#startangle开始绘制的角度,shadow是否有阴影,explode突出的部分,autopct数值保留几位小数点
plt.title('Pie Plot')
plt.show()
(七)多图合并
import numpy as np
import matplotlib.pyplot as plt
def f(t):
return np.exp(-t) * np.cos(2*np.pi*t)
t1 = np.arange(0.0, 5.0, 0.1)
t2 = np.arange(0.0, 5.0, 0.02)
plt.subplot(221)
plt.plot(t1, f(t1), 'bo',t2, f(t2)) #bo是加上圆点,t2,f(t2)是加上曲线
#plt.plot(t1, f(t1))
plt.subplot(222)
plt.plot(t2, np.cos(2*np.pi*t2))
plt.show()

浙公网安备 33010602011771号