【发布时间】:2021-10-25 15:18:27
【问题描述】:
我有一个包含 3 列的数据框:“C_code”、“F_namn”和“D_namn”,其中包含字符串。我想创建一个直方图,显示“F_namn”(地理区域)的分布,并且在每个 bin 内,可以设置“C_code”的分布,即 a、b 或 c,堆叠在每个 bin 的顶部其他。
import pandas as pd
import matplotlib.pyplot as plt
C_code = ['a', 'a', 'b', 'a', 'c', 'a', 'b', 'a']
F_namn = ['sthlm', 'norr', 'syd', 'norr', 'norr', 'sthlm', 'syd', 'norr']
D_namn = ['ff', 'rr', 'ff', 'gg', 'ff', 'rr', 'rr', 'ff']
df_test = pd.DataFrame({'C_code': C_code, 'F_namn': F_namn, 'D_namn': D_namn})
df_counts_test = df_test.apply(pd.value_counts)
df_counts_test['F_namn'].dropna().plot.bar(stacked=True)
plt.show()
这是 F namn 的直方图,我希望每个 bin 有 3 个“区域”,其中包含来自同一数据帧的“C_code”列的分布。
【问题讨论】:
-
你尝试了什么?你的代码在哪里?您可以先计算所有值,然后将其绘制为框
-
顺便说一句:您可以添加我们可以用来创建答案的示例数据(作为文本)。您还可以显示示例数据的预期结果 - 这可以是图像。并提出问题,而不是评论。
-
您好,感谢您的评论,意识到这个问题可能有点含糊。现在清楚了吗?
-
它不是
histogram,而是正常的条形图。如果您检查documentation for bar-plot,那么您会看到bar(stacked=True)的示例。 -
如果您将一些示例数据直接放在代码中(而不是从文件中加载)会更好 - 这样我们就可以简单地复制并运行它。
标签: python dataframe histogram