如何获得包含镶嵌面的并排直方图?没有刻面,直方图看起来不错,但很难比较第二组和第三组的计数:
from plotnine import *
import pandas as pd
import numpy as np
quality = ['poor', 'fair', 'good', 'very good', 'excellent']
cat1 = np.random.choice(quality,1000)
cat2 = np.random.choice(quality,1000)
cat3 = np.random.choice(quality,1000)
df = pd.DataFrame({
'One': pd.Categorical([*cat1, *cat1], categories= quality),
'group': np.repeat(['Two', 'Three'], len(cat1)),
'cat': pd.Categorical([*cat2, *cat3], categories= quality)
})
(
ggplot(df, aes(x = 'cat', fill = 'group'))
+ geom_histogram(bins = 5) # , position = 'dodge'
+ facet_grid('One ~ .')
+ theme(figure_size=(6, 6))
)
但当我加上position = 'dodge'
参数时,条形变得非常窄,不再与x轴正确对齐:
(
ggplot(df, aes(x = 'cat', fill = 'group'))
+ geom_histogram(bins = 5, position = 'dodge')
+ facet_grid('One ~ .')
+ theme(figure_size=(6, 6))
)
同样的事情发生在position = position_dodge(.75)
而不是position = 'dodge'
(未显示).