熊猫,条形图设置定制

时间:2015-12-15 21:49:51

标签: pandas matplotlib plot bar-chart

我已阅读以下几页,

但是我仍然无法自定义图表的详细设置。

对于simple code as,

#%matplotlib inline

import numpy as np
import pandas as pd

import matplotlib.pyplot as plt
plt.style.use('ggplot')

df = pd.DataFrame({
        'person':[x*16 for x in list('ABCDEF')],
        'score1':np.random.randn(6),
        'score2':np.random.randn(6),
        'score3':np.random.randn(6),
        'score4':np.random.randn(6),
        'score5':np.random.randn(6)
                   })
print(df)


plt.close('all')  # close all open figures
fig, ax = plt.subplots()

# X: pd.options.display.mpl_style = 'default' # cause system freeze
df.set_index(['person']).plot(kind='barh', ax = ax, width=0.85, fontsize=8)
ax.invert_yaxis()

plt.show()

这就是结果:

the result

即,我的所有y标签都被切断,边距太大。我已经找到了如何在这里调整它们:

customizing subplot

但我想知道如何以编程方式完成它们。

由于

1 个答案:

答案 0 :(得分:1)

Matplotlib独立于图形对象创建轴子图对象。通常你的子图在你的图上不能正确“适合”,你需要手动调整你的子图轴。 Matplotlib现在有一个函数plt.tight_layout(),试图为你做这个。更多信息here

在显示你的情节之前添加以下代码行应该为你做

plt.tight_layout()
plt.show()

此外,您应该查看此SO answer,因为这是一个非常相似的问题。祝你好运!