如何在直方图箱上放置标签
How to put label on histogram bin
使用 R studio 的 mpg 数据,我想制作一个连接直方图和密度图。我使用的代码是
mpg %>%
ggplot(aes(x = cty)) +
guides(fill='none') +
xlab('Fuel Consumption in City Area') +
geom_histogram(aes(y=..density..), binwidth = 50, fill='#3ba7c4') +
geom_density(alpha=0.2)
结果是这样的
因为Y轴不再显示cty的数量,所以我想在每个bin的上面都贴上label。我使用的代码是
mpg %>%
ggplot(aes(x = cty)) +
guides(fill='none') +
xlab('Fuel Consumption in City Area') +
geom_histogram(aes(y=..density..), binwidth = 50, fill='#3ba7c4') +
stat_bin(binwidth=1, geom='text', color='black', aes(label=..count..), position=position_stack(vjust = 0.5)) +
geom_density(alpha=0.2)
但是现在图形只显示标签,没有直方图和密度图
如何解决这个问题?
您可以在 geom_text
中使用 stat = "bin"
。使用 stat(density)
作为 y 轴值,使用 stat(count)
作为 label
美学。用一个小的负数 vjust
向上轻推文本,使计数位于条形图的顶部。
mpg %>%
ggplot(aes(x = cty)) +
guides(fill = 'none') +
xlab('Fuel Consumption in City Area') +
geom_histogram(aes(y = stat(density)), binwidth = 50, fill = '#3ba7c4') +
geom_text(stat = "bin", aes(y = stat(density), label = stat(count)),
binwidth = 50, vjust = -0.2) +
geom_density(alpha = 0.2)
实际上你会想要更多的箱子,并使密度线不那么不透明,这样它就不会与标签发生太多冲突。
mpg %>%
ggplot(aes(x = cty)) +
guides(fill = 'none') +
xlab('Fuel Consumption in City Area') +
geom_histogram(aes(y = stat(density)), binwidth = 5, fill = '#3ba7c4',
color = '#2898c0') +
geom_text(stat = "bin", aes(y = stat(density), label = stat(count)),
binwidth = 5, vjust = -0.2) +
geom_density(color = alpha("black", 0.2)) +
theme_classic()
使用 R studio 的 mpg 数据,我想制作一个连接直方图和密度图。我使用的代码是
mpg %>%
ggplot(aes(x = cty)) +
guides(fill='none') +
xlab('Fuel Consumption in City Area') +
geom_histogram(aes(y=..density..), binwidth = 50, fill='#3ba7c4') +
geom_density(alpha=0.2)
结果是这样的
因为Y轴不再显示cty的数量,所以我想在每个bin的上面都贴上label。我使用的代码是
mpg %>%
ggplot(aes(x = cty)) +
guides(fill='none') +
xlab('Fuel Consumption in City Area') +
geom_histogram(aes(y=..density..), binwidth = 50, fill='#3ba7c4') +
stat_bin(binwidth=1, geom='text', color='black', aes(label=..count..), position=position_stack(vjust = 0.5)) +
geom_density(alpha=0.2)
但是现在图形只显示标签,没有直方图和密度图
如何解决这个问题?
您可以在 geom_text
中使用 stat = "bin"
。使用 stat(density)
作为 y 轴值,使用 stat(count)
作为 label
美学。用一个小的负数 vjust
向上轻推文本,使计数位于条形图的顶部。
mpg %>%
ggplot(aes(x = cty)) +
guides(fill = 'none') +
xlab('Fuel Consumption in City Area') +
geom_histogram(aes(y = stat(density)), binwidth = 50, fill = '#3ba7c4') +
geom_text(stat = "bin", aes(y = stat(density), label = stat(count)),
binwidth = 50, vjust = -0.2) +
geom_density(alpha = 0.2)
实际上你会想要更多的箱子,并使密度线不那么不透明,这样它就不会与标签发生太多冲突。
mpg %>%
ggplot(aes(x = cty)) +
guides(fill = 'none') +
xlab('Fuel Consumption in City Area') +
geom_histogram(aes(y = stat(density)), binwidth = 5, fill = '#3ba7c4',
color = '#2898c0') +
geom_text(stat = "bin", aes(y = stat(density), label = stat(count)),
binwidth = 5, vjust = -0.2) +
geom_density(color = alpha("black", 0.2)) +
theme_classic()