将pandas Series传递给pyplot的fill_between()函数会产生以下错误:
<type 'exceptions.KeyError'> -1
然而,其他pyplot函数似乎没有把Series作为输入(plot()和scatter()似乎可以正常工作)。我知道这个问题可以通过传递my_series.value而不是my_series来解决,但有人可以解释为什么一些pyplot绘图函数似乎可以将系列作为输入,而其他人不是?给定系列时哪些功能会崩溃?感谢。
答案 0 :(得分:1)
因为matplotlib
被写为采用序列或np.ndarray
- 类似对象作为参数(并且对pandas
一无所知)。在内部使用的所有方法在pandas
对象和numpy
对象上工作相同的情况下,它可以工作(鸭子打字的魔力)。如果pandas
个对象的行为不正确(在这种情况下使用v[-1]
来获取第一个维度的最后一个元素),则会引发错误。
如果给定函数与pandas
对象一起使用取决于函数的内部,并且即使在mpl
的次要版本之间也不能保证稳定,因为您基本上使用matplotlib
以无证的方式。
答案 1 :(得分:1)
pandas
功能尚未正式实施,您仍然可以plt.fill_between
或pd.Series
申请pd.DataFrame
和pd.Series().values
pd.DataFrame().values
图。