在 ggplot geom_bar 中更改 NA 值的标签和颜色?
Change label and colour for NA value in ggplot geom_bar?
我有这样的情节:
data <- data.frame(time = c("time1", "time2", "time1"),
sex = c("m", "f", NA))
ggplot(data = data) +
geom_bar(aes(x = time, y = (..count..)/sum(..count..),
fill = sex),
position = "fill") +
scale_y_continuous(name = "percentation",
labels = scales::percent)
我正在尝试更改 NA 值的标签和颜色。我使用 scale_fill_manual
就像添加
scale_fill_manual(labels = c("m" = "male",
"f" = "female",
"NA" = "unknown"),
values = c("m" = "blue",
"f" = "red",
"NA" = "green"))
不幸的是,这不起作用,所以我想问一下,这里是否有人可以帮助我解决这个问题?是否有专门的词或其他词来选择 NA 值?另外我想保留直接分配,比如 "m" = "male"
而不仅仅是写 "male"
来控制分配。
以下对我有用:
data <- data.frame(time = c("time1", "time2", "time1"),
sex = c("m", "f", NA))
data$sex = as.character(data$sex)
data$sex[is.na(data$sex)] <- "Unknown"
ggplot(data = data) +
geom_bar(aes(x = time, y = (..count..)/sum(..count..),
fill = sex),
position = "fill") +
scale_y_continuous(name = "percentation",
labels = scales::percent)
我不确定你是否可以直接这样做。因此首先将 NA
转换为某种东西,然后您可以添加代码:
scale_fill_manual(labels = c("m" = "male",
"f" = "female",
"Unknown" = "unknown"),
values = c("m" = "blue",
"f" = "red",
"Unknown" = "green"))
我有这样的情节:
data <- data.frame(time = c("time1", "time2", "time1"),
sex = c("m", "f", NA))
ggplot(data = data) +
geom_bar(aes(x = time, y = (..count..)/sum(..count..),
fill = sex),
position = "fill") +
scale_y_continuous(name = "percentation",
labels = scales::percent)
我正在尝试更改 NA 值的标签和颜色。我使用 scale_fill_manual
就像添加
scale_fill_manual(labels = c("m" = "male",
"f" = "female",
"NA" = "unknown"),
values = c("m" = "blue",
"f" = "red",
"NA" = "green"))
不幸的是,这不起作用,所以我想问一下,这里是否有人可以帮助我解决这个问题?是否有专门的词或其他词来选择 NA 值?另外我想保留直接分配,比如 "m" = "male"
而不仅仅是写 "male"
来控制分配。
以下对我有用:
data <- data.frame(time = c("time1", "time2", "time1"),
sex = c("m", "f", NA))
data$sex = as.character(data$sex)
data$sex[is.na(data$sex)] <- "Unknown"
ggplot(data = data) +
geom_bar(aes(x = time, y = (..count..)/sum(..count..),
fill = sex),
position = "fill") +
scale_y_continuous(name = "percentation",
labels = scales::percent)
我不确定你是否可以直接这样做。因此首先将 NA
转换为某种东西,然后您可以添加代码:
scale_fill_manual(labels = c("m" = "male",
"f" = "female",
"Unknown" = "unknown"),
values = c("m" = "blue",
"f" = "red",
"Unknown" = "green"))