使用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()
这可能吗?
答案 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()
结果如下:
我不确定这实际上是否看起来更好,因为现在酒吧很薄。但是,您可以使用height
参数调整它们。