ggplot`scale_fill_manual()`无限地改变颜色

时间:2018-11-02 17:21:47

标签: r ggplot2

我的第一个代码块可以很好地工作,尽管我扔掉的值999与优雅相反。我正在尝试使第一个条变为红色,然后使蓝色和绿色交替显示。可能不是改变我的蓝色和绿色的最佳方法,但是它可以工作。

# FIRST CODE CHUNK
library(tidyverse)
ggplot(mpg, aes(fl)) + 
  geom_bar(aes(fill = fl)) + 
  scale_fill_manual(
    values = c("red", rep(c("blue", "green"), 999))
  )

我想scale_fill_manual()并无限地回收蓝色和绿色,但这是行不通的。我收到“只需要5个提供的3个”错误。

# SECOND CODE CHUNK
ggplot(mpg, aes(fl)) + 
  geom_bar(aes(fill = fl)) + 
  scale_fill_manual(
    values = c(red, c("blue", "green"))
  )

如何在scale_fill_manual()命令中回收蓝色和绿色?我想像是

scale_fill_manual(values = c(red, rep(c("blue", "green"), recycle.infinite)))

1 个答案:

答案 0 :(得分:4)

像这样吗?

scale_fill_manual(
     values = c("red", rep_len(c("blue", "green"), length(unique(mpg$fl))-1))