我正在使用ggplot2创建一个并排柱状图。当使用
以下是我的数据的示例:
scale_x_discrete(drop = T)
时,我的代码可以生成正确的图形。但是我有一个值为0的级别,并且我想在x轴上包含它。当我设置scale_x_discrete(drop = F)
时,会出现警告:Removed x rows containing missing values (geom_bar).
并且另一个具有非零值的类别会被显示成零在绘图上。以下是我的数据的示例:
library("tidyverse")
df <- data.frame(
location = c(rep("in", 231), rep("out", 83)),
status = c(rep("normal", 73), rep("mild", 42), rep("moderate", 20), rep("fever", 4),
rep("normal", 70), rep("mild", 41), rep("moderate", 62), rep("fever", 2)))
df$status <- factor(df$status, levels = c("normal", "mild", "moderate", "severe", "fever"))
df %>%
ggplot(aes(x = status,
y = ..count../tapply(..count.., ..x.., sum)[..x..],
fill = location)) +
geom_bar(position = "dodge") +
scale_y_continuous(labels = scales::percent) +
scale_x_discrete(drop=F) +
NULL
我已经看了很久,但是真的无法解决这个问题。
geom_bar
来完成这个任务。在接受你的答案之前,我会等待看看是否有其他人能够回答我原始代码为什么无法工作的问题。 - Sam