熊猫数据框条形图在条形之间放置空间

Posted

技术标签:

【中文标题】熊猫数据框条形图在条形之间放置空间【英文标题】:pandas dataframe bar plot put space between bars 【发布时间】:2017-12-17 04:34:55 【问题描述】:

所以我希望我的图像看起来像这样

但现在我的图像看起来像这样

如何在不将条宽变为 1 的情况下减少条之间的间距?

这是我的代码:

plot=repeat.loc['mean'].plot(kind='bar',rot=0,alpha=1,cmap='Reds',
       yerr=repeat.loc['std'],error_kw=dict(elinewitdh=0.02,ecolor='grey'),
       align='center',width=0.2,grid=None)

plt.ylabel('')
plt.grid(False)
plt.title(cell,ha='center')
plt.xticks([])
plt.yticks([])
plt.ylim(0,120)
plt.tight_layout()`

【问题讨论】:

你为什么不想改变条的宽度? 我通过其他方式解决了这个问题。但是你知道如何改变误差线,让它只显示上限而不是上下限吗?谢谢 【参考方案1】:

如果 pandas 或 seaborn 的***函数没有给您想要的结果,请从头开始绘制! :)

import seaborn.apionly as sns
import scipy as sp
import matplotlib.pyplot as plt

# some fake data
data = sp.randn(10,10) + 1
data = data[sp.argsort(sp.average(data,axis=1))[::-1],:]
avg = sp.average(data,axis=1)
std = sp.std(data,axis=1)

# a practical helper from seaborn to quickly generate the colors
colors = sns.color_palette('Reds',n_colors = data.shape[0])

fig, ax = plt.subplots()

pos = range(10)
ax.bar(pos,avg,width=1)
for col,patch in zip(colors,ax.patches):
    patch.set_facecolor(col)
    patch.set_edgecolor('k')

for i,p in enumerate(pos):
    ax.plot([p,p],[avg[i],avg[i]+std[i]],color='k',lw=2, zorder=-1)

【讨论】:

我通过使用其他人的解决方案解决了答案。您的解决方案实际上并没有真正帮助我。感谢您的回答。 啊我误会你了。 @nonickname 如果您确实找到了解决方案,请考虑将您的解决方案添加为编辑或回复。

以上是关于熊猫数据框条形图在条形之间放置空间的主要内容,如果未能解决你的问题,请参考以下文章

情节堆积条形图熊猫数据框

matplotlib:在条形图上绘制多列熊猫数据框

带有多索引熊猫数据框的条形图

如何使熊猫分类堆积条形图比例为 100%

如何以熊猫方式绘制堆叠条形图?

NVD3 多轴条形图在绘图上重叠条形图