我有如下数据帧:
month start end
0 2018-1 1000 0
1 2018-2 1100 0.1
2 2018-3 1400 0.3
3 2018-4 700 -0.5如果我想用线绘制“start”列和“end”列(x轴应该是month),并且只在同一图形中使用pandas plot函数,我应该如何做?+对于条形图,最好是在end=0上有一条黑色水平线的图表,并对条形图进行颜色编码,使正回报为绿色,负回报为红色。
我开始尝试
ax = df.plot(figsize=(10,5), x='month', y='start')
df.plot(figsize=(10,5), x='month', y='end', kind='bar', ax=ax)
ax
pass但它看起来不是我想要的。提前感谢!

发布于 2019-04-22 07:22:15
IIUC,你需要这样的东西。如何有条件地给条形图上色,取自here。我从剪贴板上获取了你在问题中提供的数据
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')

发布于 2019-04-22 07:20:45
ax=df.plot(figsize=(10,5),x="month",y="End",kind="bar")
df.plot(x='month', y='Start',kind="line",ax=ax)对我来说很好。
https://stackoverflow.com/questions/55787457
复制相似问题