Matplotlib(一)
Matplotlib库的介绍
Matplotlib库的使用
Matplotlib库由各种可视化类构成,内部结构复杂,受Matlab启发matplotlib.pyplot是绘制各类可视化图形的命令子库,相当于快捷方式
import matplotlib.pyplot as plt
入门案例
import matplotlib.pyplot as plt plt.plot([3, 1, 2, 4, 5]) plt.ylabel("grade") plt.show()
注意:
plt.plot()只有一个输入列表或数组时,参数被当做Y轴,X轴以索引自动生成
运行效果如下
import matplotlib.pyplot as plt plt.plot([3, 1, 2, 4, 5]) plt.ylabel("Grade") plt.savefig("D:/test", dpi=600) # PNG文件,dpi是指每一个英寸中所包含的点的数量 plt.show()
注意
:plt.savefig()将输出图形存储为文件,默认为PNG格式,可以通过dpi修改输出质量
import matplotlib.pyplot as plt plt.plot([0, 2, 4, 6, 8], [3, 1, 4, 5, 2]) # x轴坐标[0, 2, 4, 6, 8] y轴坐标[3, 1, 4, 5, 2] plt.ylabel("Grade") plt.axis([-1, 10, 0, 6]) # x轴范围:[-1, 10] y轴范围:[0, 6] plt.show()
注意
:plt.plot(x, y)当有两个以上参数时,按照x轴和y轴顺序绘制数据点
pyplot的绘图区域
plt.subplot(nrows, ncols, plot_number) # nrows:横纵区域的数量(行) ncols:纵轴区域的数量(列) ploy_number:当前位于哪个区域
3行2列
import numpy as np import matplotlib.pyplot as plt # f(t)是能量衰减函数 def f(t): return np.exp(-t) * np.cos(2*np.pi*t) # arange(start, stop, step, dtype) # 根据start(默认为0)与stop(不包含stop的终止值)指定的范围以及step(默认为1)步长值,生成一个ndarray数组 a = np.arange(0.0, 5.0, 0.02) plt.subplot(211) plt.plot(a, f(a)) # 根据数组a绘制能量衰减函数 plt.subplot(2, 1, 2) plt.plot(a, np.cos(2*np.pi*a*2), 'r--') plt.show()
pyplot的plot()函数
plt.plot(x, y, format_string, **kwargs)
- x:x轴数据,列表或数组,可选
- y:y轴数据,列表或数组
- format_string:控制曲线的格式字符串,可选
- **kwargs:第二组或更多(x, y, format_string)
注意:当绘制多条曲线时,各条曲线的x不能省略
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()
关键参数format_string:**
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-.')
**kawrgs:第二组或更多(x, y, format_string)
color:控制颜色,color='green'
linestyle:线条风格,linestyle='dashed'
marker:标记风格,marker='o'
markerfacecolor:标记颜色,markerfacecolor='blue'
markersize:标记尺寸,markersize=20
pyplot的中文显示
pyplot的中文显示的第一种方法
pyplot并不默认支持中文显示,需要rcParams修改字体实现
import matplotlib.pyplot as plt import numpy as np a = np.arange(10) plt.rcParams['font.family'] = 'SimHei' # SimHei是黑体 plt.plot([3, 1, 4, 5, 2]) plt.ylabel("纵轴(值)") plt.show()
rcParams的属性
中文字体的种类
rcParams['font.family']
实例
import numpy as np import matplotlib.pyplot as plt import matplotlib matplotlib.rcParams['font.family'] = 'STSong' 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()
注意:
第一种方法是全局改变字体的大小,不是很推荐使用
pyplot的中文显示的第二种方法(推荐使用)
有中文输出的地方,添加一个属性: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的子绘图区域
复杂的绘图区域
plt.subplot2gird()
plt.subplot2gird(GirdSpec, CurSpec, colspan=1, rowspan=1)
理念:设定网格,选中网格,确定选中行列区域数量,编号从0开始
GirdSpec类
单元小结
Matplotlib库入门
pyplot子库的基本使用
pyplot图形绘制