How to fill color by groups in histogram using Matplotlib?

孤者浪人 提交于 2021-01-18 07:15:00

问题


I know how to do this in R and have provided a code for it below. I want to know how can I do something similar to the below mentioned in Python Matplotlib or using any other library

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


回答1:


Please consider the following example, which uses 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')



回答2:


Using pandas you can pivot the dataframe and directly plot it.

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()



来源:https://stackoverflow.com/questions/56638467/how-to-fill-color-by-groups-in-histogram-using-matplotlib

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!