matplotlib 如何在同一个图里绘制两个纵坐标
作者:野牛程序员:2023-08-09 08:16:43python阅读 2672
在Matplotlib中,可以使用twinx()
方法来在同一个图中绘制两个具有不同纵坐标刻度的图形。这种情况通常在需要将两个不同尺度或单位的数据同时绘制在同一个图中时使用。以下是一个示例代码,演示如何在同一个图中绘制两个纵坐标:
import matplotlib.pyplot as plt import numpy as np # 创建一个新的图形和坐标轴 fig, ax1 = plt.subplots() # 生成一些示例数据 x = np.linspace(0, 10, 100) y1 = np.sin(x) y2 = np.cos(x) # 在第一个坐标轴上绘制 sin 曲线 ax1.plot(x, y1, 'b-') ax1.set_xlabel('X-axis') ax1.set_ylabel('sin', color='b') ax1.tick_params(axis='y', labelcolor='b') # 创建一个共享 x 轴的第二个坐标轴 ax2 = ax1.twinx() # 在第二个坐标轴上绘制 cos 曲线 ax2.plot(x, y2, 'r-') ax2.set_ylabel('cos', color='r') ax2.tick_params(axis='y', labelcolor='r') # 添加标题 plt.title('Sin and Cos Curves with Twin Y Axes') # 显示图形 plt.show()
在这个示例中,首先创建了一个新的图形和坐标轴(ax1
),然后在第一个坐标轴上绘制了sin
曲线。接着,我们使用ax1.twinx()
创建了一个与第一个坐标轴共享 x 轴的第二个坐标轴(ax2
),在第二个坐标轴上绘制了cos
曲线。
通过使用不同的ax1
和ax2
坐标轴对象,可以分别控制每个坐标轴的外观和属性,从而在同一个图中绘制具有不同纵坐标刻度的图形。
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
