组合堆叠条和总线

时间:2016-12-28 18:53:37

标签: python pandas matplotlib anaconda

我有一些代码可以在给定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')

当然这只是留下了条形图,但没有添加该行。Stacked bar no Total :(

先谢谢!

1 个答案:

答案 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')

enter image description here

pandas / matplotlib似乎不喜欢每次操作后(稍微)不同的轴/索引。如果仅创建条形图,则会注意到轴默认为日期时间值,而如果仅创建折线图,则轴将默认为日期值。这似乎会导致一些潜在的混淆,因此要求您明确ax.get_xticks()