为什么pandas df.plot.bar()接受宽度数组?

时间:2018-04-30 06:39:35

标签: python pandas matplotlib

根据documentation,matplotlib' s barbarh接受单个值或宽度数组,每个条形一个。我已经看到了这方面的例子。但是,在使用pandas包装器时它不起作用,并且堆栈跟踪表明检查x限制的算法(分别为barh的y限制)无法处理多个宽度。发生了什么事?

import pandas as pd
import matplotlib.pyplot as plt

# Minimum reproducible bug
df = pd.DataFrame({'value': [3,5,4], 'width': [0.1, 0.5, 1.0]})
plt.close('all')
fig, ax = plt.subplots(1,3)
df.plot.barh(ax=ax[0], width=0.9, stacked=True)  # Base case
df.plot.bar(ax=ax[1], width=df.width.values)     # Throws error after drawing bars, before setting x-limits
df.plot.barh(ax=ax[2], width=df.width.values)    # (Analogous to above)

1 个答案:

答案 0 :(得分:0)

所以我想明显的解决方法是直接使用matplotlib,因为它可以按预期处理多个宽度/高度。

self.assertRaises(StopIteration, next, it1)