【发布时间】:2019-06-24 11:29:29
【问题描述】:
我在创建一组直方图时遇到了一些问题。我有一个 10 列的熊猫数据框。最后一列是二进制的。我想将前 9 列显示为直方图。现在,我有 df.hist() 将所有 10 个直方图显示为一组,这很好。
但我想进一步定制它。例如,对于我的数据框中的第 1 列,我希望它的直方图将第 10 列 == 1 的分布覆盖在第 10 列 == 0 的分布之上。这个二进制第 10 列本质上是 9 个中每个列的图例直方图。我还想只显示直方图轮廓(无填充),以便您可以看到两个分布相互重叠(红色表示 1,绿色表示 0)。
非常感谢任何帮助!
【问题讨论】:
-
你想要 10 列的 10 个不同的直方图还是 10 列的单个直方图。
-
@Jeril,我希望实现 9 个不同的直方图(每个 df 列 1 个)。如果我可以将它们布置成 3x3 的网格,那就太好了。在 9 个直方图中的每一个中,都会有两个轮廓(第 10 列值为 1 的 df 行的红色轮廓和第 10 df 列的值为 0 的绿色轮廓)。还有一个显示“红色 (1)”和“绿色 (0)”的图例。
-
您可以迭代数据框列并使用子图进行绘图。那可行。你试过这种方法吗?
-
还没有,但我会试一试子情节。 matplotlib 相当新,所以听到你提到子图会有所帮助。我将尝试按照我需要的方式设置一列,然后在 df.columns 中执行 for x。谢谢!
标签: python pandas matplotlib histogram