plt绘图添加副坐标轴
时间: 2023-08-04 14:07:41 浏览: 159
在使用Matplotlib库进行绘图时,你可以通过添加副坐标轴(secondary axis)来在同一图表上显示不同范围的数据。这在比较具有不同量纲的数据时很有用。
下面是一个示例代码,演示如何添加副坐标轴:
```python
import matplotlib.pyplot as plt
import numpy as np
# 创建数据
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.exp(x)
# 创建主坐标轴
fig, ax1 = plt.subplots()
# 绘制第一个数据
color = 'tab:red'
ax1.set_xlabel('X')
ax1.set_ylabel('sin(x)', color=color)
ax1.plot(x, y1, color=color)
ax1.tick_params(axis='y', labelcolor=color)
# 创建副坐标轴
ax2 = ax1.twinx()
# 绘制第二个数据
color = 'tab:blue'
ax2.set_ylabel('exp(x)', color=color)
ax2.plot(x, y2, color=color)
ax2.tick_params(axis='y', labelcolor=color)
# 添加图例
lines = [ax1.get_lines()[0], ax2.get_lines()[0]]
labels = [line.get_label() for line in lines]
plt.legend(lines, labels)
plt.show()
```
运行上述代码,将绘制一个包含两个数据系列的图形,其中一个数据系列使用左侧的主坐标轴,另一个数据系列使用右侧的副坐标轴。
在示例代码中,我们首先创建了一个主坐标轴 `ax1`,并绘制了一个sin函数的数据。然后,通过调用 `ax1.twinx()` 创建了一个副坐标轴 `ax2`,并在该坐标轴上绘制了指数函数的数据。最后,使用 `plt.legend()` 添加了图例。
你可以根据自己的需求修改数据和绘图方式,并使用 `ax1` 和 `ax2` 对象来设置主坐标轴和副坐标轴的属性。
阅读全文