Matplotlib(一)
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图形绘制
