如何基于DataFrame绘制Y轴范围为0-1的多折线图?
绘制固定Y轴范围0-1的双折线图
我们有如下结构的DataFrame:
| No._trees | prop._robin | prop._dove |
|---|---|---|
| 1 | 0.5 | 0.6 |
| 2 | 0.6 | 0.2 |
可复现的DataFrame代码:
import pandas as pd d = {'No._trees': [1, 2], 'prop._robin': [0.5, 0.6], 'prop._dove':[0.6,0.2]} df = pd.DataFrame(data=d)
你需要的是基于DataFrame的列数据绘制折线图,同时将Y轴的显示范围固定在0到1之间——这和常规绘图逻辑不冲突,Y轴依然使用prop._robin和prop._dove列的数据,只是通过设置轴范围约束显示区间即可。
方案一:使用Matplotlib手动绘制
import matplotlib.pyplot as plt # 分别绘制两条折线,指定X轴为树木数量 plt.plot(df['No._trees'], df['prop._robin'], label='知更鸟', marker='o') plt.plot(df['No._trees'], df['prop._dove'], label='鸽子', marker='s') # 核心:固定Y轴范围为0-1 plt.ylim(0, 1) # 添加图表辅助元素 plt.xlabel('树木数量') plt.ylabel('比例') plt.title('不同树木数量下知更鸟与鸽子的比例') plt.legend() # 显示图表 plt.show()
方案二:使用Pandas内置绘图(更简洁)
import matplotlib.pyplot as plt # 直接基于DataFrame绘制折线图,指定X轴和要展示的Y列 df.plot(x='No._trees', y=['prop._robin', 'prop._dove'], marker='o') # 固定Y轴范围 plt.ylim(0, 1) # 调整标签与标题 plt.xlabel('树木数量') plt.ylabel('比例') plt.title('不同树木数量下知更鸟与鸽子的比例') plt.show()
关键说明
plt.ylim(0, 1)是实现Y轴固定范围的核心代码,它会强制图表的Y轴显示区间锁定在0到1之间,不受数据本身波动范围影响。- 两条折线完全基于你提供的DataFrame列数据生成,X轴绑定
No._trees列,Y轴分别绑定prop._robin和prop._dove列,完全匹配你的需求。
内容的提问来源于stack exchange,提问作者Niam45
相关产品推荐
相关产品推荐

