首页 > 解决方案 > ggplot `scale_fill_manual()` 无限交替颜色

问题描述

我的第一个代码块工作正常,尽管我的一次性价值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)))

标签: rggplot2

解决方案


像这样的东西?

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

推荐阅读