📅  最后修改于: 2023-12-03 15:10:17.686000             🧑  作者: Mango
在 Python 中使用 Matplotlib 绘制图表是一项强大的工具,它允许我们创建各种各样的图表来可视化数据。 在本文中,我们将讨论如何使用 Matplotlib 在单个图表中创建两个 Y 轴。
当我们需要在同一图表上绘制不同的数据时,使用两个 Y 轴非常有用。 Matplotlib 提供了绘制单个图表上的多个 Y 轴的函数。以下是一个简单的例子,说明了如何使用 Matplotlib 绘制双 Y 轴图表:
import matplotlib.pyplot as plt
import numpy as np
# 创建数据
x = np.arange(0, 10, 0.1)
y1 = 0.05 * x ** 2
y2 = -1 * y1
# 绘制图表
fig, ax1 = plt.subplots()
ax2 = ax1.twinx()
ax1.plot(x, y1, 'g-')
ax2.plot(x, y2, 'b-')
ax1.set_xlabel('X data')
ax1.set_ylabel('Y1 data', color='g')
ax2.set_ylabel('Y2 data', color='b')
plt.show()
上述代码将绘制一个包含两个 Y 轴的图表,其中两个轴都具有不同的颜色和标签。请注意,我们在此示例中使用了 fig, ax = plt.subplots()
方法,它返回图表对象 fig
和轴对象 ax1
。
我们可以进一步自定义 Y 轴的外观,例如更改线型和颜色,更改刻度线的位置和标签等。以下代码演示了如何自定义双 Y 轴图表:
import matplotlib.pyplot as plt
import numpy as np
# 创建数据
x = np.arange(0, 10, 0.1)
y1 = 0.05 * x ** 2
y2 = -1 * y1
# 绘制图表
fig, ax1 = plt.subplots()
ax2 = ax1.twinx()
ax1.plot(x, y1, 'g-', linewidth=2)
ax2.plot(x, y2, 'b--', linewidth=2)
# 自定义 Y1 轴
ax1.set_xlabel('X data')
ax1.set_ylabel('Y1 data', color='g')
ax1.tick_params('y', colors='g', rotation=90)
ax1.set_ylim([-5, 25])
# 自定义 Y2 轴
ax2.set_ylabel('Y2 data', color='b')
ax2.tick_params('y', colors='b', rotation=0)
ax2.set_ylim([-120, 60])
plt.show()
上述代码将绘制一个带有自定义颜色、线型和刻度线的双 Y 轴图表。我们还可以更改每个轴的限制,以改变轴的长度和范围。在此示例中,我们为 Y1 轴设置了 [-5, 25] 的限制,为 Y2 轴设置了 [-120, 60] 的限制。
Matplotlib 提供了许多功能强大的方法,可帮助我们在 Python 中绘制出美丽的图表。双 Y 轴图表是一种常见的图表类型,它允许我们在同一图表上可视化不同的数据。通过使用 Matplotlib 提供的方法,我们可以轻松绘制出定制的双 Y 轴图表。