【问题标题】:na.value can not work in scale_fill_continuous() in rna.value 不能在 r 中的 scale_fill_continuous() 中工作
【发布时间】:2020-12-08 07:41:02
【问题描述】:

我想设置NA值的颜色。

但是当我设置scale_fill_continuous(na.value = 'red')时它不起作用。

这样的可重现示例:

df = data.frame(
  grade = c('class 1', 'class 1', 'class 2'),
  sex   = c('Female', 'Male', 'Female'),
  n     = c(1,5,3))
df

df %>% ggplot(aes(x = sex, y = grade, fill = n)) +
  geom_tile()

df %>% ggplot(aes(x = sex, y = grade, fill = n)) +
  geom_tile() +
  scale_fill_continuous(na.value = 'red')

任何帮助将不胜感激!

【问题讨论】:

    标签: r ggplot2 dplyr


    【解决方案1】:

    数据中没有NA值,需要先生成再使用绘图代码。

    生成缺失组合的一种方法是使用tidyr::complete

    library(ggplot2)
    
    tidyr::complete(df, grade, sex) %>%
      ggplot(aes(x = sex, y = grade, fill = n)) +
      geom_tile() + 
      scale_fill_continuous(na.value = 'red')
    

    【讨论】:

    • 谢谢。我检查了complete 文档。*对于因素,使用了全套水平(不仅仅是出现在数据中的那些)。*还有一个小问题。我怎样才能完成仅出现在数据中的因子向量。例如,df$grade = factor(df$grade, levels =c('class 1', 'class 2', 'class 3'))
    • 制作成角色df$grade <- as.character(df$grade)
    猜你喜欢
    • 2021-01-31
    • 1970-01-01
    • 2014-07-24
    • 2015-04-23
    • 2021-04-21
    • 2011-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多