我有一些代码可以在给定DataFrame时生成一个漂亮的堆叠图和总行。当我将我的Anaconda升级到4.0(pandas 0.18,matplotlib 1.5.1)时,生成的总线路停止了。我似乎无法弄清楚为什么。
这是一些最初有效的测试代码。
import pandas as pd
from matplotlib import pyplot as plt
td = pd.util.testing.makeTimeDataFrame(10)
fig = plt.figure()
td.plot(kind='bar',stacked=True, ax=fig.gca())
plt.plot(td.sum(axis=1),'k-',label = 'Total')
先谢谢!
答案 0 :(得分:2)
import pandas as pd
import matplotlib.pyplot as plt
td = pd.util.testing.makeTimeDataFrame(10)
ax = td.plot(kind='bar', stacked=True)
ax.plot(ax.get_xticks(), td.sum(axis=1), label='Total')
plt.legend(loc='best')
pandas / matplotlib似乎不喜欢每次操作后(稍微)不同的轴/索引。如果仅创建条形图,则会注意到轴默认为日期时间值,而如果仅创建折线图,则轴将默认为日期值。这似乎会导致一些潜在的混淆,因此要求您明确ax.get_xticks()
。