如何创建一个不等间距的条形图?

时间:2017-08-02 13:14:59

标签: python pandas matplotlib charts

使用plot.barh创建一个间距相等的条形图。 但是,我有一个具有不等间距值(df1['dist'])的列,我想在图中使用它来提供其他信息:

df1 = pd.DataFrame(np.random.rand(5, 2), columns=['a', 'b'])
df1['dist'] = pd.Series([1,5,6.5,15,45], index=df1.index)

df1.plot.barh(['dist'],['a','b'],stacked=True, width=.6, color = ['y','b'])
plt.show()

这可能吗?

1 个答案:

答案 0 :(得分:2)

您可以使用barh中的matplotlib功能“手动”创建条形图:

import pandas as pd
from matplotlib import pyplot as plt
import numpy as np

df1 = pd.DataFrame(np.random.rand(5, 2), columns=['a', 'b'])
df1['dist'] = pd.Series([1,5,6.5,15,45], index=df1.index)

fig,ax = plt.subplots()

ax.barh(df1['dist'],df1['a'],height =1)
ax.barh(df1['dist'],df1['b'],left=df1['a'], height =1)
plt.show()

结果如下:

enter image description here

我不确定这实际上是否看起来更好,因为现在酒吧很薄。但是,您可以使用height参数调整它们。