从简单的线形图开始——Note

it2022-05-05  192

一、创建图形容器、画出基本图

import matplotlib.pyplot as plt import numpy as np plt.style.use('seaborn-whitegrid') fig = plt.figure() ax = plt.axes() x = np.linspace(0, 10, 1000) ax.plot(x, np.sin(x))

也可以用pylab接口连续画多条线:

plt.plot(x, np.sin(x)) plt.plot(x, np.cos(x))

二、调整图形的线条颜色与风格

1、用color参数修改颜色:
plt.plot(x, np.sin(x - 0), color='blue') # 标准颜色名称 plt.plot(x, np.sin(x - 1), color='g') # 缩写颜色代码 plt.plot(x, np.sin(x - 2), color='0.75') # 范围在 0~1 的灰度值 plt.plot(x, np.sin(x - 3), color='#FFDD44') # 十六进制(RRGGBB, 00~FF) plt.plot(x, np.sin(x - 4), color=(1.0, 0.2, 0.3)) # RGB 元组,范围在0~1 plt.plot(x, np.sin(x - 5), color='chartreuse') # HTML颜色名称

2、用 linestyle 调整线条的风格:
plt.plot(x, x + 0, linestyle='solid') # 实线 plt.plot(x, x + 1, linestyle='dashed') # 虚线 plt.plot(x, x + 2, linestyle='dashdot') # 点划线 plt.plot(x, x + 3, linestyle='dotted') # 实点线

也可以用下面的简化形式的,表达效果一样:

plt.plot(x, x + 0, linestyle='-') # 实线 plt.plot(x, x + 1, linestyle='--') # 虚线 plt.plot(x, x + 2, linestyle='-.') # 点划线 plt.plot(x, x + 3, linestyle=':') # 实点线

当然,还可以使用一种更简单的方式,可以将 linestyle 和 color 编码组合起来,作为plt.plot()的一个非关键字参数使用:

plt.plot(x, x + 1, '-g') # 绿色实线 plt.plot(x, x + 2, '--c') # 青色虚线 plt.plot(x, x + 3, '-.k') # 黑色点划线 plt.plot(x, x + 4, ':r') # 红色实点线

三、调整图形:坐标轴上下限

1、调整坐标轴上下限最基础的方法是plt.xlim和plt.ylim:
plt.plot(x, np.sin(x)) plt.xlim(-1, 11) # 设置横轴坐标界限 plt.ylim(-1.5, 1.5) # 设置纵轴坐标界限

当然也可以让坐标轴逆序显示:

plt.plot(x, np.sin(x)) plt.xlim(12, 1) plt.ylim(1.5, -1.5)

2、另一个方法是plt.axis()

https://matplotlib.org/3.1.1/api/_as_gen/matplotlib.pyplot.axis.html 通过传入 [xmin, xmax, ymin, ymax] 对应的值,来设置界限。

plt.plot(x, np.sin(x)) plt.axis([-1, 11, -1.5, 1.5])

plt.axis()还可以根据图形的内容自动收缩坐标轴,不留空白区域

plt.plot(x, np.sin(x)) plt.axis('tight')

还可以设置图形布局:

plt.plot(x, np.sin(x)) plt.axis('equal')

四、设置图形标签

1、图形标题和坐标轴标题:
plt.plot(x, np.sin(x)) plt.title(' SSSD ') plt.xlabel('x') plt.ylabel('sin(x)')

2、创建图例或为内条线设置标签

plt.legend()会自动的把对应标签的颜色形状匹配。要结合plt.plot()里面的label参数使用。

plt.plot(x, np.sin(x), '-g', label='sin(x)') plt.plot(x, np.cos(x), ':b', label='cos(x)') plt.axis('equal') plt.legend()

Matplotlib 陷阱

虽然大多数的plt函数都可以直接转换成ax方法,但是并非所有的命令都可以这样使用。尤其是用来设置坐标轴上下限、坐标轴标题和图形标题的函数,他们都有很大的差别。一些MATLAB风格的转换如下所示:

plt.xlabel() -> ax.set_xlabel() plt.ylabel() -> ax.set_ylabel() plt.xlim() -> ax.set_xlim() plt.ylim() -> ax.set_ylim() plt.title() -> ax.set_title()

最新回复(0)