如何处理 pandas 条形图中恼人的间隙

lan*_*ery 6 python matplotlib bar-chart pandas

我想修复下面条形图中 2012 年和 2013 年之间的差距。

在此输入图像描述

我的数据框是

In [30]: df
Out[30]:
            Pre-Release  Post-Release
FinishDate
2008                1.0           0.0
2009               18.0           0.0
2010               96.0           0.0
2011              161.0           0.0
2012              157.0           0.0
2013                0.0         139.0
2014                0.0         155.0
2015                0.0         150.0
2016                0.0          91.0
2017                0.0          15.0
Run Code Online (Sandbox Code Playgroud)

我用来df.plot(kind='bar', width=1)绘图。

Seb*_*zny 4

您的图表中没有实际的“间隙”:Pandas 只是保留空间来绘制彼此相邻的两个不同的条形。拿这段代码来说明一下:

from io import StringIO
import pandas as pd
TESTDATA=StringIO("""2008                1.0           0.0
2009               18.0           5.0
2010               96.0           0.0
2011              161.0           0.0
2012              157.0           0.0
2013                0.0         139.0
2014                0.0         155.0
2015                0.0         150.0
2016                0.0          91.0
2017                0.0          15.0""")
df=pd.read_csv(TESTDATA,delim_whitespace=True,index_col=0)
df.plot(kind='bar')
Run Code Online (Sandbox Code Playgroud)

两个相邻的酒吧

但实际上您并不需要打印两个相邻的条形图,因此您可以将两个系列绘制到同一个图中,而不是绘制数据框:

ax=df['1.0'].plot(kind='bar')
df['0.0'].plot(kind='bar',ax=ax,color='orange')
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

或者只使用:

df.plot(kind='bar', stacked=True)
Run Code Online (Sandbox Code Playgroud)

在这种情况下,这会给出相同的结果。