根据documentation,matplotlib' s bar
和barh
接受单个值或宽度数组,每个条形一个。我已经看到了这方面的例子。但是,在使用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)
答案 0 :(得分:0)
所以我想明显的解决方法是直接使用matplotlib,因为它可以按预期处理多个宽度/高度。
self.assertRaises(StopIteration, next, it1)