使用Pandas数据框创建堆叠直方图

17 投票
1 回答
27971 浏览
提问于 2025-04-18 12:15

我正在尝试用两个或更多不均匀的 pandas 数据框来创建一个堆叠直方图。目前我能让它们重叠在一起,但无法做到堆叠。

import pandas as pd
import matplotlib.pyplot as plt

df = pd.read_csv('dert.csv', encoding = "ISO-8859-1", index_col=0)

df1['text'] = df['text'].dropna(subset=['five'])
df2['printed'] = df['text2']
ax = df1['text'].hist( bins=100, range=(1,100), stacked=True, color = 'r')
ax = df2['printed'].hist(bins=100, range=(1,100), stacked=True, color = 'g')

plt.setp(ax.get_xticklabels(),  rotation=45)
plt.show()

我该如何让它们堆叠在一起呢?

我找到了一种解决方案,但它并没有使用 pandas 数据框,具体可以参考这个链接:Matplotlib,如何从三个不等长的数组创建堆叠直方图

1 个回答

28

那篇文章中的方法应该是有效的:

plt.hist([df1['text'],df2['printed']],
          bins=100, range=(1,100), stacked=True, color = ['r','g'])

撰写回答