为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

茅侃侃 2022-01-18 13:45:02
我有如下数据框:   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')

//img1.sycdn.imooc.com//61e654070001b74b06360340.jpg

查看完整回答
反对 回复 2022-01-18
?
潇湘沐

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)

对我来说很好。


查看完整回答
反对 回复 2022-01-18
  • 2 回答
  • 0 关注
  • 155 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信