python使用plt生成多个Y轴的折线图
可以使用plt.subplots()函数创建多个子图,并使用ax.twinx()方法创建额外的Y轴。
以下是一个示例代码:
import matplotlib.pyplot as plt
import numpy as np
# 创建数据
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
y3 = np.exp(x)
# 创建子图
fig, ax1 = plt.subplots()
# 绘制第一个Y轴的折线图
ax1.plot(x, y1, 'r-', label='sin(x)')
ax1.set_xlabel('x')
ax1.set_ylabel('sin(x)', color='r')
ax1.tick_params('y', colors='r')
# 创建第二个Y轴
ax2 = ax1.twinx()
# 绘制第二个Y轴的折线图
ax2.plot(x, y2, 'b-', label='cos(x)')
ax2.set_ylabel('cos(x)', color='b')
ax2.tick_params('y', colors='b')
# 创建第三个Y轴
ax3 = ax1.twinx()
# 移动第三个Y轴的位置
ax3.spines['right'].set_position(('outward', 60))
# 绘制第三个Y轴的折线图
ax3.plot(x, y3, 'g-', label='exp(x)')
ax3.set_ylabel('exp(x)', color='g')
ax3.tick_params('y', colors='g')
# 添加图例
lines = [ax1.get_lines()[0], ax2.get_lines()[0], ax3.get_lines()[0]]
ax1.legend(lines, [line.get_label() for line in lines])
plt.show()
这个例子中,我们绘制了三条折线图,分别对应于三个不同的Y轴。第一个Y轴的折线图是红色的sin(x)函数,第二个Y轴的折线图是蓝色的cos(x)函数,第三个Y轴的折线图是绿色的exp(x)函数。每个Y轴都有自己的标签和颜色。使用ax.twinx()方法创建额外的Y轴时,需要通过spines['right'].set_position(('outward', 60))将第三个Y轴的位置移动到图表的右侧。最后,我们使用ax1.legend()方法添加图例。
运行这段代码,将会生成一个包含三个Y轴的折线图
原文地址: https://www.cveoy.top/t/topic/hQ1i 著作权归作者所有。请勿转载和采集!