Python可视化--matplotlib.pyplot绘图详解

  • 创建画布

我们使用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):绘制折线图。

  • xy是数据序列,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):绘制散点图。

  • xy是数据序列,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()

猜你喜欢

转载自blog.csdn.net/Edenms/article/details/129289334