创建画布
我们使用plt.figure()函数创建空白画布。常用的参数中,figsize需要一个元组值,表示空白画布的横纵坐标比;dpi表示像素的个数,实际上就是对图像大小的控制。
通常与plt.subplot()一起用,下面会讲,subplot就是创建子图。
# 创建画布
plt.figure(figsize=(8, 6), dpi=80)
创建子图
subplot(nrows,ncols,sharex,sharey,subplot_kw,**fig_kw)
nrows 表示 subplot 的行数
ncols 表示 subplot 的列数
sharex 表示 subplot 中 x 轴的刻度,所有的 subplot x 轴应该保持相同的刻度
sharey 表示 subplot 中 y 轴的刻度,所有的 subplot y 轴应该保持相同的刻度
创建多个子图
subplots参数与subplot相似
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0, 100)
#划分子图
fig,axes=plt.subplots(2,2)
ax1=axes[0,0]
ax2=axes[0,1]
ax3=axes[1,0]
ax4=axes[1,1]
#作图1
ax1.plot(x, x)
#作图2
ax2.plot(x, -x)
#作图3
ax3.plot(x, x ** 2)
ax3.grid(color='r', linestyle='--', linewidth=1,alpha=0.3)
#作图4
ax4.plot(x, np.log(x))
plt.show()
绘制内容
linestyle参数表示绘制的线型,可用的线型包括 '-', '--', '-.', ':', 'None', ' ', '', 'solid', 'dashed', 'dashdot', 'dotted',共11类。label参数则是对线段的一种名称标记,用于之后图例的绘制。
# 绘制曲线
plt.plot(x, y1, color='r', linestyle='--', label='Shanghai')
plt.plot(x, y2, color='g', linestyle='-.', label='Beijing')
绘制图例
plt.legend()函数用于绘制图例。loc参数表示图例的位置,默认为best,表示自动选择。
plt.legend(loc='best') # 提供11种不同的图例显示位置
设置坐标轴刻度
# 设置刻度和步长
z = range(-10, 45)
x_label = ["10:{}".format(i) for i in x]
plt.xticks(x[::5], x_label[::5])
plt.yticks(z[::5])
添加网格信息
plt.grid()函数用于添加图片中的背景网格。常用参数中,alpha表示透明度设置,linewith表示线宽。
plt.grid(linestyle='--', alpha=0.5, linewidth=2)
添加标题
plt.xlabel()、plt.ylabel()和plt.title()函数分别用于设置x坐标轴、y坐标轴和图标的标题信息。
# 添加标题
plt.xlabel('Time/ min')
plt.ylabel('Temperature/ ℃')
plt.title('Curve of Temperature Change with Time')
保存和展示
# 保存和展示
# plt.savefig('./plt_img/test2.png')
plt.show()
plot(x, y, format_str, **kwargs):绘制折线图。
x和y是数据序列,format_str指定了折线的样式,如颜色、线型等。
**kwargs可以传递其他参数,如label(给折线添加标签)和linewidth(设置折线宽度)等。
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(0, 10, 0.1)
y = np.sin(x)
plt.plot(x, y, 'r-', label='sine curve', linewidth=2)
plt.xlabel('x')
plt.ylabel('y')
plt.title('sine curve')
plt.legend()
plt.show()
scatter(x, y, s=None, c=None, marker=None, **kwargs):绘制散点图。
x和y是数据序列,s指定了点的大小,c指定了点的颜色,marker指定了点的形状。
**kwargs可以传递其他参数,如label(给散点添加标签)和alpha(设置散点透明度)等。
import matplotlib.pyplot as plt
import numpy as np
x = np.random.rand(50)
y = np.random.rand(50)
colors = np.random.rand(50)
sizes = 500 * np.random.rand(50)
plt.scatter(x, y, s=sizes, c=colors, marker='o', alpha=0.5, label='random data')
plt.xlabel('x')
plt.ylabel('y')
plt.title('scatter plot')
plt.legend()
plt.show()
bar(x, height, width=0.8, bottom=None, align='center', **kwargs):绘制柱状图。
x是柱子的x轴坐标,height是柱子的高度,width指定了柱子的宽度,bottom指定了柱子的底部位置,align指定了柱子的对齐方式。
**kwargs可以传递其他参数,如label(给柱子添加标签)和color(设置柱子颜色)等。
import matplotlib.pyplot as plt
import numpy as np
x = np.array(['A', 'B', 'C', 'D', 'E'])
y = np.array([10, 24, 36, 42, 15])
plt.bar(x, y, align='center', color='b', label='data')
plt.xlabel('category')
plt.ylabel('value')
plt.title('bar chart')
plt.legend()
plt.show()