我有如下数据框: month start end0 2018-1 1000 01 2018-2 1100 0.12 2018-3 1400 0.33 2018-4 700 -0.5如果我想用线绘制“开始”列,用条形图绘制“结束”列(x 轴应该是月份),并且只在同一个图中使用 pandas 绘图函数,我应该怎么做?+ 对于条形图,最好在图表的末尾有一条黑色水平线 = 0,并且条形图采用颜色编码,使得正回报为绿色,负回报为红色。我开始尝试ax = df.plot(figsize=(10,5), x='month', y='start')df.plot(figsize=(10,5), x='month', y='end', kind='bar', ax=ax)axpass但它看起来不是我想要的。提前致谢!
2 回答
PIPIONE
TA贡献1829条经验 获得超9个赞
IIUC,你需要这样的东西。如何有条件地为条形着色已从此处获取。我从剪贴板中获取了您在问题中提供的数据
import pandas as pd
df = pd.read_clipboard()
df['positive'] = df['end'] > 0
ax = df.plot(figsize=(10,5), x='month', y='start')
ax1 = df.plot(figsize=(10,5), x='month', y='end', kind='bar', color=df.positive.map({True: 'g', False: 'r'}),
ax=ax, secondary_y=True)
ax1.plot([0, len(df['end'])], [0, 0], color='black')
潇湘沐
TA贡献1816条经验 获得超6个赞
ax=df.plot(figsize=(10,5),x="month",y="End",kind="bar")
df.plot(x='month', y='Start',kind="line",ax=ax)
对我来说很好。
添加回答
举报
0/150
提交
取消