python matplotlib模块介绍
程序员文章站
2024-01-15 19:14:40
...
matplotlib 是Python的绘图库,很强大,很好用
提供一下下载:
pip3 install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple
用matplotlib 做图时候,有时候会写汉字,但是这个时候会乱码,解决办法我用了两种
1.fname 为 你下载的字体库路径,注意 c:\windows\fonts\simsun.ttc 字体的路径
from matplotlib.font_manager import FontProperties
font_set = FontProperties(fname=r"c:\\windows\\fonts\simsun.ttc", size=12)
2.这个是使用系统的字体
mpl.rcParams['font.sans-serif'] = ['SimHei'] # 中文显示
mpl.rcParams['axes.unicode_minus'] = False # 负号显示
这两种办法基本 可以解决你的问题了
下面介绍一下里面的做图
简单的直线图
x = np.arange(1,11)
y = 2 * x + 5
plt.title("Matplotlib test")
plt.xlabel("x axis caption")
plt.ylabel("y axis caption")
plt.plot(x,y)
plt.show()
这是最基本的应用方式,show()这个函数 是直接显示,或者不想展示,可以用savefig(),不过里面的参数就需要填写path了。
Axes 翻译成中文是轴域/子图。Axes 是带有数据的图像区域
fig = plt.figure() # 创建一个没有 axes 的 figure
fig.suptitle('No axes on this figure') # 添加标题以便我们辨别
fig, ax_lst = plt.subplots(2, 2) # 创建一个以 axes 为单位的 2x2 网格的 figure
plt.show()
绘制曲线图:
x = np.linspace(-2, 6, 50)
y1 = x + 3 # 曲线 y1
y2 = 3 - x # 曲线 y2
plt.figure() # 定义一个图像窗口
plt.plot(x, y1) # 绘制曲线 y1
plt.plot(x, y2) # 绘制曲线 y2
plt.show()
调用np.linspace是创建一个 numpy 数组,并记作 x。x 包含了从 -2 到 6 之间等间隔的 50 个值。y1 和 y2 则分别是这 50 个值对应曲线的函数值组成的 numpy 数组。前面的操作还处于设置属性的阶段,还没有开始绘制图形。plt.figure() 函数才意味着开始执行绘图操作,然后调用show()显示。
对图进行简单的修饰
# 创建一个点数为 8 x 6 的窗口, 并设置分辨率为 80像素/每英寸
plt.figure(figsize=(8, 6), dpi=80)
# 再创建一个规格为 1 x 1 的子图
plt.subplot(111)
x = np.linspace(-2, 6, 50)
y1 = x + 3 # 曲线 y1
y2 = 3 - x # 曲线 y2
# 绘制颜色为蓝色、宽度为 1 像素的连续曲线 y1
plt.plot(x, y1, color="blue", linewidth=1.0, linestyle="-")
# 绘制颜色为紫色、宽度为 2 像素的不连续曲线 y2
plt.plot(x, y2, color="#800080", linewidth=2.0, linestyle="--")
# 设置横轴的上下限
plt.xlim(-1, 6)
# 设置纵轴的上下限
plt.ylim(-2, 10)
plt.show()
如果需要在图的左上角添加一个图例。我们只需要在 plot() 函数里以「键 - 值」的形式增加一个参数。首先我们需要在绘制曲线的时候,增加一个 label 参数,然后再调用 plt.legend() 绘制出一个图例。plt.legend() 需要传入一个位置值。loc 的值可选如下:
值 说明
best 自动选择最佳位置,默认是左上
upper right 右上
upper left 左上
lower right 右下
lower left 左下
right 右边,默认是右上。如果因图形挡住右上,会自动往下选择空白地方绘制
center right 垂直居中且靠右
center left 垂直居中且靠左
lower center 垂直居中且靠底部
upper center 垂直居中且靠顶部
center 居中
以上,基本满足最基本的做图要求。