与熊猫合并两个人物

时间:2018-11-16 08:19:55

标签: python pandas matplotlib

我已将数据框df绘制为堆叠的条形图:

build_exe_options = {'include_files': [(os.path.join(sys.prefix, "Library", "lib", "geos_c.dll"), os.path.join("Library", "lib", "geos_c.dll"))]}

这张堆积的条形图每个月都有条形图。

我还有另一个带有季度数据(每3个月一次)的数据框。我需要此数据作为在主堆积条形图的背景下涵盖所有3个月的条形图。以下代码自行绘制季度数据。

dft['Date'] = old['DATE'].dt.to_period('M')
df = dft.groupby(by=['Date', 'Size'])['Spend'].sum()  
stacked = df.unstack('Size').plot(kind='bar', stacked=True)

我想重叠这两幅图(它们的y轴不同)。我曾尝试使用subplots功能,但实际上并没有任何用途。

1 个答案:

答案 0 :(得分:1)

这是比实际代码更多的伪代码,因为您没有提供太多信息或所编写的代码。尽管如此,这仍可以为您提供一些有关如何将pandas.DataFrame.plotmatplotlib.pyplot.bar与不同的y轴组合的提示。

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

width = 1
fig, ax1 = plt.subplots()
value_x = np.arange(cir['value'])
ax1.bar(x, cir['value'], width = 3*width)
ax2 = ax1.twinx()
df.unstack('Size').plot(kind='bar', stacked=True, ax=ax2, secondary_y=True, width=width)

plt.show()

请注意,诀窍是使用ax2 = ax1.twinx()并将系列绘制在不同的轴上。

关于width,由于我不知道您的x轴是什么,因此不确定是否可以。但这只是为了让您了解如何操作。