首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Pandas和Matplotlib将df绘制为具有2个y轴的子图

Pandas是一个基于Python的数据分析库,而Matplotlib是一个用于绘制图表和可视化数据的库。当我们想要将DataFrame(df)绘制为具有2个y轴的子图时,可以使用这两个库的功能来实现。

首先,我们需要导入所需的库:

代码语言:python
代码运行次数:0
复制
import pandas as pd
import matplotlib.pyplot as plt

接下来,我们假设我们有一个名为df的DataFrame,其中包含两个列,分别是x和y1,我们想要将它们绘制在一个子图中,并在同一图中添加另一个y轴和对应的数据列y2。

代码语言:python
代码运行次数:0
复制
# 创建一个示例DataFrame
data = {'x': [1, 2, 3, 4, 5],
        'y1': [10, 20, 15, 25, 30],
        'y2': [50, 40, 30, 20, 10]}
df = pd.DataFrame(data)

# 创建一个包含两个子图的画布
fig, ax1 = plt.subplots()

# 绘制第一个y轴的数据
ax1.plot(df['x'], df['y1'], 'g-', label='y1')
ax1.set_xlabel('x')
ax1.set_ylabel('y1')
ax1.tick_params('y', colors='g')

# 创建第二个y轴并绘制数据
ax2 = ax1.twinx()
ax2.plot(df['x'], df['y2'], 'b-', label='y2')
ax2.set_ylabel('y2')
ax2.tick_params('y', colors='b')

# 添加图例
lines, labels = ax1.get_legend_handles_labels()
lines2, labels2 = ax2.get_legend_handles_labels()
ax2.legend(lines + lines2, labels + labels2, loc='upper right')

# 显示图形
plt.show()

在这个例子中,我们创建了一个包含两个子图的画布。首先,我们使用ax1.plot()函数绘制了第一个y轴的数据,并设置了相应的标签和颜色。然后,我们使用ax1.twinx()函数创建了第二个y轴,并使用ax2.plot()函数绘制了第二个y轴的数据。最后,我们使用ax1.get_legend_handles_labels()ax2.get_legend_handles_labels()函数获取图例的句柄和标签,并使用ax2.legend()函数将两个图例合并到一起,并设置其位置为右上角。最后,使用plt.show()函数显示图形。

这样,我们就成功地将DataFrame绘制为具有2个y轴的子图了。

推荐的腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券