【问题标题】:How to fill color by groups in histogram using Matplotlib?如何使用 Matplotlib 在直方图中按组填充颜色?
【发布时间】:2019-10-31 11:16:30
【问题描述】:

我知道如何在 R 中执行此操作,并在下面提供了代码。我想知道如何做类似于下面提到的 Python Matplotlib 或使用任何其他库的事情

library(ggplot2)
ggplot(dia[1:768,], aes(x = Glucose, fill = Outcome)) +
  geom_bar() +
  ggtitle("Glucose") +
  xlab("Glucose") +
  ylab("Total Count") +
  labs(fill = "Outcome")

【问题讨论】:

标签: python r matplotlib histogram data-visualization


【解决方案1】:

使用 pandas,您可以旋转数据框并直接绘制它。

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

# dataframe with two columns in "long form"
g = np.array([np.random.normal(5, 10, 500),
              np.random.rayleigh(10, size=500)]).flatten()
df = pd.DataFrame({'Glucose': g, 'Outcome': np.repeat([0,1],500)})

# pivot and plot
df.pivot(columns="Outcome", values="Glucose").plot.hist(bins=100)

plt.show()

【讨论】:

  • 你能挑颜色吗?
  • @Ryan 可能已经猜到了,但对于其他想知道的人,您可以通过 color 参数向 plot.hist() 提供颜色列表。另外,请注意您可以使用stacked=True 参数,这样直方图就不会重叠。它默认为 False。
【解决方案2】:

请考虑以下示例,它使用seaborn 0.11.1。

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

# generate random data
data = {'Glucose': np.random.normal(5, 10, 100),
        'Outcome': np.random.randint(2, size=100)}
df = pd.DataFrame(data)

# plot
fig, ax = plt.subplots(figsize=(10, 10))
sns.histplot(data=df, x='Glucose', hue='Outcome', stat='count', edgecolor=None)
ax.set_title('Glucose')

【讨论】:

    猜你喜欢
    • 2017-03-10
    • 2011-02-02
    • 2012-04-18
    • 2015-04-04
    • 2022-01-17
    • 2013-08-26
    • 2017-06-29
    • 2016-12-11
    • 1970-01-01
    相关资源
    最近更新 更多