pandas dataframe bar plot在栏之间放置空格

时间:2017-07-12 16:15:54

标签: pandas matplotlib dataframe bar-chart seaborn

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

但现在我的形象看起来像这样 Image i have now

如何在不将条形宽度设为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 个答案:

答案 0 :(得分:0)

如果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)

enter image description here