数据分析与展示---Matplotlib入门
简介:
一:Matplotlib库的介绍
(一)简单使用
二:区域划分subplot
三:plot函数
四:pyplot的中文显示
(一)方法一:修改rcParams参数
(二)方法二(推荐),在有中文地方增加属性:fontproperties
五:pyplot的文本显示方法
六:pyplot的子绘图区域
(一)subplot2grid()
(二)GridSpec类加上subplot方法
一:Matplotlib库的介绍
(一)简单使用
import matplotlib.pyplot as plt plt.plot([3,1,4,5,2]) plt.ylabel("grade") plt.show()
import matplotlib.pyplot as plt plt.plot([3,1,4,5,2]) plt.ylabel("grade") plt.savefig("test",dip=600) #png文件,dpi修改输出质量 plt.show()
import matplotlib.pyplot as plt plt.plot([0,2,4,6,8],[3,1,4,5,2]) #第一个列表是x轴列表,第二个是y轴列表 plt.ylabel("grade") plt.axis([-1,10,0,6]) #前两个是x轴的取值范围-1到10,后两个是y轴取值范围0-6 plt.show()
二:区域划分subplot
注意:划分区域可以不使用','
import matplotlib.pyplot as plt import numpy as np def f(t): return np.exp(-t)*np.cos(2*np.pi*t) #衰减曲线 a = np.arange(0.0,5.0,0.02) plt.subplot(211) #划分为两行一列,选取第一个区域 plt.plot(a,f(a)) #绘制衰减曲线 plt.subplot(2,1,2) #在将绘图区域换到整个绘图区域的第二个,自动切换 plt.plot(a,np.cos(2*np.pi*a),'r--') #绘制余弦曲线 plt.show()
三:plot函数
import matplotlib.pyplot as plt import numpy as np a = np.arange(10) plt.plot(a,a*1.5,a,a*2.5,a,a*3.5,a,a*4.5) #每两个是一条曲线 plt.show()
当我们不选择线条形状为空时,可以变为其他非线性图
import numpy as np import matplotlib.pyplot as plt ax = plt.subplot() ax.plot(10*np.random.randn(100),10*np.random.randn(100),'o') ax.set_title("Simple Scatter") plt.show()
如何控制颜色等曲线属性:通过参数format_string
import matplotlib.pyplot as plt import numpy as np a = np.arange(10) plt.plot(a,a*1.5,'go-',a,a*2.5,'rx',a,a*3.5,'*',a,a*4.5,'b-.') plt.show()
四:pyplot的中文显示
(一)方法一:修改rcParams参数
import matplotlib.pyplot as plt import matplotlib matplotlib.rcParams['font.family']='SimHei' plt.plot([0,2,4,6,8],[3,1,4,5,2])#第一个列表是x轴列表,第二个是y轴列表 plt.ylabel("纵向轴") #默认是不允许中文,会报错 plt.axis([-1,10,0,6]) #前两个是x轴的取值范围-1到10,后两个是y轴取值范围0-6 plt.show()
import matplotlib.pyplot as plt import numpy as np import matplotlib matplotlib.rcParams['font.family'] = "SimHei" matplotlib.rcParams['font.size'] = 20 a = np.arange(0.0,5.0,0.02) plt.xlabel("横轴:时间") plt.ylabel("纵轴:振幅") plt.plot(a,np.cos(2*np.pi*a),'r--') plt.show()
(二)方法二(推荐),在有中文地方增加属性:fontproperties
import matplotlib.pyplot as plt import numpy as np a = np.arange(0.0,5.0,0.02) plt.xlabel("横轴:时间",fontproperties="SimHei",fontsize=20) plt.ylabel("纵轴:振幅",fontproperties="SimHei",fontsize=20) plt.plot(a,np.cos(2*np.pi*a),'r--') plt.show()
五:pyplot的文本显示方法
import matplotlib.pyplot as plt import numpy as np a = np.arange(0.0,5.0,0.02) plt.plot(a,np.cos(2*np.pi*a),'r--') plt.xlabel("横轴:时间",fontproperties="SimHei",fontsize=20,color="green") plt.ylabel("纵轴:振幅",fontproperties="SimHei",fontsize=20) plt.title(r'正弦波实例 $cons(2\pi x)$',fontproperties="SimHei",fontsize=15) plt.text(2,1,r'$\mu=100$',fontsize=15) #2 1 是横纵坐标 plt.axis([-1,6,-2,2]) plt.grid(True) plt.show()
plt.annotate(r"$\mu=100$",xy=(2,1),xytext=(3,1.5),arrowprops=dict(facecolor="black",shrink=0.1,width=2)) #shrink是箭头两边到图像,文字之间的间隔(相对于箭头的比例)
六:pyplot的子绘图区域
上面使用了subplot进行了简单的区域划分,下面考虑复杂的绘图区域的划分
(一)subplot2grid()
(二)GridSpec类加上subplot方法
总结