首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在不使用matplotlib (仅使用pandas)的情况下,使用不同类型的图(条形图和线条)绘制不同的列

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

Stack Overflow用户
提问于 2019-04-22 06:56:47
回答 2查看 150关注 0票数 1

我有如下数据帧:

代码语言:javascript
复制
   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上有一条黑色水平线的图表,并对条形图进行颜色编码,使正回报为绿色,负回报为红色。

我开始尝试

代码语言:javascript
复制
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

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-04-22 07:22:15

IIUC,你需要这样的东西。如何有条件地给条形图上色,取自here。我从剪贴板上获取了你在问题中提供的数据

代码语言:javascript
复制
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')

票数 2
EN

Stack Overflow用户

发布于 2019-04-22 07:20:45

代码语言:javascript
复制
ax=df.plot(figsize=(10,5),x="month",y="End",kind="bar")
df.plot(x='month', y='Start',kind="line",ax=ax)

对我来说很好。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55787457

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档