Matplotlib是一个功能强大的Python库,在它的帮助下,我们可以绘制条形图,图表,绘图,比例等。在本文中,我们将尝试在Matplotlib中绘制多个Y轴刻度。
为什么多个Y轴刻度很重要?
绘制具有不同单位或测量尺度的数据集时,需要多个Y轴尺度,以帮助进行清晰的比较而不会失真。在以下情况下,这是必要的:
- 不同的单位或测量尺度:
如果您有多个具有不同单位或测量尺度的数据集,则使用单独的Y轴可以防止失真,并更容易比较趋势。 - 相关但按比例缩放的数据:
当您拥有相关但幅度不同的数据集时,多个Y轴可以帮助可视化其模式,而无需一个数据集主导图。 - 合并不同数据:
如果您需要覆盖两个或多个具有不同数据类型的数据集(例如,温度和降雨量),多个Y轴允许您用自己的尺度表示每个变量。 - 突出关系:
多个Y轴可用于突出显示可能具有不同范围或单位的两个数据集之间的关系或相关性。 - 避免杂乱:
当您有许多数据集要显示时,使用多个Y轴可以防止混乱,并使图更具可读性。 - 增强解释:
在某些情况下,具有多个Y轴可以通过在不同数据集之间提供清晰的视觉分离来增强图的可解释性。
示例基本步骤
导入必要库:
import matplotlib.pyplot as plt
import numpy as np
创建示例数据:
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.exp(-x)
y3 = 100 * np.cos(x)
我们将创建第一个Y轴。要创建轴,我们使用Matplotlib。
1.创建第一个Y轴
fig, ax1 = plt.subplots()
在这里,我们创建了一个matplotlib图形和轴“ax1”来表示第一个y轴。plt.subplots
(基本上用于创建单个子图和图形。
2.在第一个Y轴上绘制第一个数据集
现在我们的下一步是在第一个Y轴上绘制第一个数据集。这里,我们绘制了我们定义的第一个数据集“y1”,并在ax1.plot()
的帮助下绘制了第一个Y轴“ax1”。这里我们使用“b”作为颜色,因为我们希望它是蓝色的,然后我们设置X和Y轴的标签。我们还使用了tick_params()
将Y轴的颜色设置为蓝色。
# Create the first plot with the left Y-axis
fig, ax1 = plt.subplots(figsize=(8, 6))
# Plot the first dataset on the first Y-axis
ax1.plot(x, y1, 'b', label='y1 (sin(x))') # Shorthand 'b' for blue color
# Set labels and ticks for the first Y-axis
ax1.set_xlabel('X-axis')
ax1.set_ylabel('y1', color='b')
ax1.tick_params('y', colors='b')
# Display the plot
plt.title('Plotting the First Dataset on the First Y-Axis')
plt.show()
3.创建第二个Y轴
ax2 = ax1.twinx()
在这里,我们使用ax1.twinx()
方法创建第二个轴“ax2”,它将与第一个Y轴共享相同的X轴。
4.在第二个Y轴上绘制第二个数据集
我们在上面创建的第二个y轴上绘制第二个数据集。现在我们使用“g”,因为我们想将颜色设置为绿色。然后设置y轴的标签。通过使用tick_params
我们可以将Y轴的颜色设置为绿色。现在我们将第二组数据绘制在第二个Y轴上。
fig, ax2 = plt.subplots(figsize=(8, 6))
ax2.plot(x, y2, 'g', label='y2 (exp(-x))')
ax2.set_ylabel('y2', color='g')
ax2.tick_params('y', colors='g')
# Display the plot
plt.title('Plotting the Second Dataset on the Second Y-Axis')
plt.show()
5.创建第三个Y轴
ax3 = ax1.twinx()
6.在第三个Y轴上绘制第三个数据集
fig, ax3 = plt.subplots(figsize=(8, 6))
ax3.plot(x, y3, 'r', label='y3 (100*cos(x))')
ax3.set_ylabel('y3', color='r')
ax3.tick_params('y', colors='r')
# Display the plot
plt.title('Plotting the third Dataset on the third Y-Axis')
plt.show()
7.添加图例
lines1, labels1 = ax1.get_legend_handles_labels()
lines2, labels2 = ax2.get_legend_handles_labels()
lines3, labels3 = ax3.get_legend_handles_labels()
lines = lines1 + lines2 + lines3
labels = labels1 + labels2 + labels3
8.添加标题并展示
plt.title('Multiple Y-axis Scales')
plt.show()
在这张图中,我们可以清楚地看到三个y轴和x轴。
结论
我们已经讨论了如何在这个项目中导入所需的库,即matplotlib和numpy,然后我们为多个数据集创建了示例数据,然后我们讨论了第一个y轴,第二个y轴,第三个y轴,在这之间我们利用twinx()
函数来创建共享同一个x轴的y轴。然后在添加图例后,完成了绘制。希望这对在Matplotlib中创建多个Y轴刻度有帮助。