猿问

如何在不使用 matplotlib 的情况下使用不同类型的绘图(条形和线)绘制不同的列

我有如下数据框:


   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

如果我想用线绘制“开始”列,用条形图绘制“结束”列(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)

ax

pass

但它看起来不是我想要的。提前致谢!

茅侃侃
浏览 218回答 2
2回答

PIPIONE

IIUC,你需要这样的东西。如何有条件地为条形着色已从此处获取。我从剪贴板中获取了您在问题中提供的数据import pandas as pddf = pd.read_clipboard()df['positive'] = df['end'] > 0ax = 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')

潇湘沐

ax=df.plot(figsize=(10,5),x="month",y="End",kind="bar")df.plot(x='month', y='Start',kind="line",ax=ax)对我来说很好。
随时随地看视频慕课网APP

相关分类

Python
我要回答