我已将数据框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功能,但实际上并没有任何用途。
答案 0 :(得分:1)
这是比实际代码更多的伪代码,因为您没有提供太多信息或所编写的代码。尽管如此,这仍可以为您提供一些有关如何将pandas.DataFrame.plot
和matplotlib.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
轴是什么,因此不确定是否可以。但这只是为了让您了解如何操作。