python之plot()和subplot()画图
Python 之 plot()
和 subplot()
画图
在数据可视化中,matplotlib
是 Python 中最常用的绘图库之一。它为我们提供了灵活的工具来创建各类图形,包括折线图、柱状图、散点图、饼图等。而 plot()
和 subplot()
是 matplotlib
中最常用的两个函数,它们分别用于绘制图形和设置多个子图。
本文将详细讲解 plot()
和 subplot()
函数的基本使用方法,并通过示例来帮助你更好地理解和应用这些功能。
一、plot()
函数基础
plot()
是 matplotlib
中用于绘制图形的基础函数,通常用于绘制折线图。通过 plot()
,你可以控制线条的颜色、样式、宽度、标记等。
1. plot()
的基本用法
最简单的 plot()
用法是传入数据序列,matplotlib
会自动生成折线图。
示例:简单的折线图
import matplotlib.pyplot as plt
# 定义数据
x = [1, 2, 3, 4, 5]
y = [1, 4, 9, 16, 25]
# 使用 plot() 绘制折线图
plt.plot(x, y)
# 显示图形
plt.show()
说明:
x
和y
分别表示横坐标和纵坐标的数值。plt.plot(x, y)
用于绘制折线图。plt.show()
用于显示图形。
2. 自定义线条样式
你可以通过 plot()
函数的参数自定义线条的颜色、样式和标记。
示例:自定义线条样式
import matplotlib.pyplot as plt
# 定义数据
x = [1, 2, 3, 4, 5]
y = [1, 4, 9, 16, 25]
# 绘制带有不同样式的线条
plt.plot(x, y, color='red', linestyle='--', marker='o')
# 显示图形
plt.show()
说明:
color='red'
设置线条颜色为红色。linestyle='--'
设置线条为虚线。marker='o'
在每个数据点上添加圆形标记。
3. 绘制多个折线图
你可以在同一张图上绘制多条折线,只需多次调用 plot()
函数。
示例:绘制多个折线图
import matplotlib.pyplot as plt
# 定义数据
x = [1, 2, 3, 4, 5]
y1 = [1, 4, 9, 16, 25]
y2 = [1, 2, 3, 4, 5]
# 绘制两条折线
plt.plot(x, y1, label='y = x^2', color='blue')
plt.plot(x, y2, label='y = x', color='green')
# 添加图例
plt.legend()
# 显示图形
plt.show()
说明:
label
参数用于为每条折线添加标签。plt.legend()
用于显示图例,帮助区分不同的线条。
二、subplot()
函数基础
subplot()
函数用于在同一画布上创建多个子图。通过 subplot()
,你可以指定图形的行列位置,轻松实现多个图形的排列和显示。
1. subplot()
的基本用法
subplot()
接受三个参数:nrows
、ncols
和 index
,分别表示子图的行数、列数和当前图的位置。
示例:创建一个包含 2 行 2 列子图的画布
import matplotlib.pyplot as plt
# 第一个子图
plt.subplot(2, 2, 1) # 2 行 2 列的第 1 个子图
plt.plot([1, 2, 3], [1, 4, 9])
# 第二个子图
plt.subplot(2, 2, 2) # 2 行 2 列的第 2 个子图
plt.plot([1, 2, 3], [1, 2, 3])
# 第三个子图
plt.subplot(2, 2, 3) # 2 行 2 列的第 3 个子图
plt.plot([1, 2, 3], [3, 2, 1])
# 第四个子图
plt.subplot(2, 2, 4) # 2 行 2 列的第 4 个子图
plt.plot([1, 2, 3], [1, 2, 1])
# 显示图形
plt.show()
说明:
subplot(2, 2, 1)
创建一个 2x2 的子图布局,并在第 1 个位置绘制图形。subplot()
的参数依次是行数、列数和图形位置。图形位置是从左到右、从上到下进行编号的。
2. 调整子图之间的间距
可以通过 plt.subplots_adjust()
方法来调整子图之间的间距,例如设置左右、上下的间距。
示例:调整子图间距
import matplotlib.pyplot as plt
# 创建多个子图
plt.subplot(2, 2, 1)
plt.plot([1, 2, 3], [1, 4, 9])
plt.subplot(2, 2, 2)
plt.plot([1, 2, 3], [1, 2, 3])
plt.subplot(2, 2, 3)
plt.plot([1, 2, 3], [3, 2, 1])
plt.subplot(2, 2, 4)
plt.plot([1, 2, 3], [1, 2, 1])
# 调整子图间距
plt.subplots_adjust(hspace=0.5, wspace=0.5) # hspace: 上下间距, wspace: 左右间距
# 显示图形
plt.show()
说明:
hspace
用于设置子图之间的垂直间距。wspace
用于设置子图之间的水平间距。
3. 创建多个子图并共享坐标轴
你还可以在多个子图中共享坐标轴,例如,多个子图共用 x 轴或 y 轴。
示例:共享 x 轴
import matplotlib.pyplot as plt
# 创建多个子图,共享 x 轴
fig, axs = plt.subplots(2, 1, sharex=True)
# 绘制第一个子图
axs[0].plot([1, 2, 3], [1, 4, 9])
# 绘制第二个子图
axs[1].plot([1, 2, 3], [1, 2, 1])
# 显示图形
plt.show()
说明:
plt.subplots()
可以返回一个包含多个子图的fig
和axs
对象。sharex=True
表示所有子图共享 x 轴,sharey=True
表示共享 y 轴。
三、结合 plot()
和 subplot()
创建复杂图形
你可以将 plot()
和 subplot()
结合使用,在同一个画布上绘制多个折线图,并调整它们的布局和样式。
示例:多个子图和不同样式的折线图
import matplotlib.pyplot as plt
# 创建一个 2x2 的子图布局
plt.subplot(2, 2, 1)
plt.plot([1, 2, 3], [1, 4, 9], color='red', linestyle='-', marker='o', label='Line 1')
plt.legend()
plt.subplot(2, 2, 2)
plt.plot([1, 2, 3], [1, 2, 3], color='green', linestyle='--', marker='x', label='Line 2')
plt.legend()
plt.subplot(2, 2, 3)
plt.plot([1, 2, 3], [3, 2, 1], color='blue', linestyle='-.', marker='^', label='Line 3')
plt.legend()
plt.subplot(2, 2, 4)
plt.plot([1, 2, 3], [1, 2, 1], color='purple', linestyle=':', marker='s', label='Line 4')
plt.legend()
# 调整子图间距
plt.subplots_adjust(hspace=0.5, wspace=0.5)
# 显示图形
plt.show()
说明
:
- 在每个子图中,我们都用不同的颜色、线型和标记绘制了折线图。
- 使用
plt.legend()
为每个图形添加图例。
四、总结
plot()
用于绘制单一图形(如折线图),可以自定义线条的颜色、样式、标记等。subplot()
用于在同一画布上创建多个子图,可以控制子图的排列和布局。- 通过
subplot()
和plot()
的组合,可以创建更加复杂的图形和数据可视化效果。
掌握了这些基本操作后,你可以利用 matplotlib
创建更复杂、更加美观的图形,进行数据可视化和分析。希望本文的讲解能帮助你更好地理解 plot()
和 subplot()
的用法。
评论已关闭