[英]How to plot empty bars for factors with no value using geom_bar?
看到这两个data.frames
:
df1 <- data.frame(var=letters[1:3],val=1:3)
df2 <- df1[-1,]
请注意, var
在两个data.frames
中都是一个因素,而级别c
在df2$var
df2$var
# [1] b c
# Levels: a b c
如果我使用刻面,则会使条形充满所需的颜色:
library
library(dplyr)
bind_rows(df1,df2,.id = "id") %>%
ggplot(aes(1,val,fill=var)) +
geom_bar(stat="identity",position="fill") +
facet_wrap(~id)
(抱歉,我目前无法上传图表)
但是,如果我想做2个单独的图,则无法保持相同的颜色主题。
ggplot(df1,aes(1,val,fill=var)) + geom_bar(stat="identity",position="fill")
ggplot(df2,aes(1,val,fill=var)) + geom_bar(stat="identity",position="fill")
我怎样才能解决这个问题 ?
只需创建一个手动调色板,并告诉您的秤不降低缺失因子水平即可。
另请注意, geom_bar(position = "identity")
与geom_col()
相同; 最好使用更短的符号。
library(ggplot2)
df1 <- data.frame(var=letters[1:3],val=1:3)
df2 <- df1[-1,]
pal <- c(a = "blue", b = "red", c = "gold")
ggplot(df1, aes(x = 1, y = val, fill = var)) +
geom_col(position = "fill") +
scale_fill_manual(values = pal, drop = F)
ggplot(df2, aes(x = 1, y = val, fill = var)) +
geom_col(position = "fill") +
scale_fill_manual(values = pal, drop = F)
由reprex软件包 (v0.2.0)创建于2018-04-30。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.