繁体   English   中英

如何使用geom_bar绘制无值因子的空条?

[英]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中都是一个因素,而级别cdf2$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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM