matplotlib如何绘制双轴折线图
时间: 2023-07-12 08:18:44 浏览: 113
要绘制双轴折线图,可以使用Matplotlib中的twinx方法。以下是一个简单的例子:
```
import matplotlib.pyplot as plt
import numpy as np
# 生成数据
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
# 创建figure和axis对象
fig, ax1 = plt.subplots()
# 绘制第一条曲线(左轴)
ax1.plot(x, y1, 'b-')
ax1.set_xlabel('X data')
ax1.set_ylabel('Y1 data', color='b')
ax1.tick_params('y', colors='b')
# 创建第二个axis对象
ax2 = ax1.twinx()
# 绘制第二条曲线(右轴)
ax2.plot(x, y2, 'r-')
ax2.set_ylabel('Y2 data', color='r')
ax2.tick_params('y', colors='r')
# 显示图像
plt.show()
```
这个例子中,我们首先生成了两组数据y1和y2,然后创建了一个包含两个子图的figure对象。在第一个子图中,我们使用plot方法绘制了y1的曲线,并设置了左轴的标签和颜色。然后,我们使用twinx方法创建了第二个子图,使用plot方法绘制了y2的曲线,并设置了右轴的标签和颜色。最后,我们使用show方法显示图像。
相关问题
使用python怎样画左右双轴折线图
您好,以下是回答您的问题:
要使用 Python 画左右双轴折线图,可以使用 Matplotlib 库中的 twinx() 方法。具体步骤如下:
1. 导入 Matplotlib 库:
import matplotlib.pyplot as plt
2. 创建画布和子图:
fig, ax1 = plt.subplots()
3. 创建第一个坐标轴:
ax1.plot(x1, y1, color='red', label='y1')
4. 创建第二个坐标轴:
ax2 = ax1.twinx()
ax2.plot(x2, y2, color='blue', label='y2')
5. 设置坐标轴标签和图例:
ax1.set_xlabel('x label')
ax1.set_ylabel('y1 label')
ax2.set_ylabel('y2 label')
ax1.legend(loc='upper left')
ax2.legend(loc='upper right')
6. 显示图形:
plt.show()
希望这个回答能够帮助您。
matplotlib绘制双轴折线图后如何显示图例
要显示matplotlib绘制的双轴折线图的图例,可以使用plt.legend()函数。该函数可以接受一个包含每个线条标签的列表作为参数,并将其绘制在图表上方。下面是一个简单的双轴折线图例子,展示如何使用plt.legend()函数来显示图例:
```
import matplotlib.pyplot as plt
import numpy as np
# 生成数据
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
# 绘制双轴折线图
fig, ax1 = plt.subplots()
ax2 = ax1.twinx()
ax1.plot(x, y1, 'g-', label='sin')
ax2.plot(x, y2, 'b-', label='cos')
# 显示图例
lines = ax1.get_lines() + ax2.get_lines()
labels = [line.get_label() for line in lines]
plt.legend(lines, labels, loc='best')
plt.show()
```
在上面的例子中,我们首先生成了两个数据集y1和y2,然后使用ax1.plot()和ax2.plot()函数将它们分别绘制在左轴和右轴上。接着,我们使用ax1.get_lines()和ax2.get_lines()函数获取所有的线条对象,并将它们传递给plt.legend()函数,同时将每个线条的标签传递给labels参数。最后,我们使用loc='best'来指定图例的位置,使其尽可能地不遮挡数据。
阅读全文