scale_color_manual 不适用于分配自定义颜色

Posted

技术标签:

【中文标题】scale_color_manual 不适用于分配自定义颜色【英文标题】:scale_color_manual not working for assigning custermized color 【发布时间】:2021-11-28 00:35:56 【问题描述】:

我正在使用特定颜色分配相同的操作代码,但 scale_color_manual 不适用于我。拾取的颜色仍然是默认的。有什么建议?这将非常有帮助!使用颜色列分配操作代码或选择颜色,如“红色”/“黑色”

    library(ggplot2)
    library(stringr)
    library(librudate)
    category <- c('task1', 'task2', 'task2','task1','task1')
    start_min <- c(0,   0,  16,   20,   40)
    stop_min <- c(14.9,10, 30, 35, 70)
    color <- c('#FFFF00','#FFFF00','#3581B8','#3581B8', '#FFFFFF')
    action <- c('A', 'A', 'B', 'B', 'C')
    data <- data.frame(category,start_min,stop_min, color)
    
    bars <- ggplot(data, mapping=aes(ymin=0, ymax=2,
                                                  xmin=start_min, xmax=stop_min,
                                                  group=category,
                                                  fill=action,
                                                  text=paste("Task:", str_wrap(string = action, width = 70,),
                                                            
                                                             "<br>category: ", format(category, digits=1), 
                                                             "<br>Duration: ", format(action, digits=1)) 
    )) + 
      facet_grid(category ~ .)+
      geom_rect(alpha=0.8) +
      labs(title='System Tag') +
      theme_minimal()+
      theme(plot.title = element_text(hjust=0.5, color="white"), #legend.position = 'none',
            plot.subtitle=element_text(hjust=1, vjust=1, color="white"),
            axis.title.x=element_text(color="white"), axis.text.x=element_text(color="white"),
            axis.text.y=element_blank(), axis.ticks.y=element_blank(),
            panel.grid.major = element_blank(), panel.grid.minor = element_blank(),
            panel.border = element_blank(), panel.background = element_blank()) +
      scale_color_manual(
                         breaks = c("A", "B", "C"),
                         values = c("A" = "blue", "B" = "red", "C" = "black") )
    
    
    bars <- plotly::ggplotly(bars, tooltip="text") %>%
      plotly::ggplotly(bars, tooltip="text") %>%
      plotly::config(displayModeBar = TRUE) %>% 
      plotly::layout(plot_bgcolor='white', paper_bgcolor='white', margin = list(b=30, l=0, r=10, t=30))
    
    bars

【问题讨论】:

【参考方案1】:

所以修复很简单,将scale_color_manual 更改为scale_fill_manual

如果您希望颜色成为 color 变量中的颜色,只需执行以下操作:

scale_fill_manual(
        breaks = c("A", "B", "C"),
        values = color)

【讨论】:

以上是关于scale_color_manual 不适用于分配自定义颜色的主要内容,如果未能解决你的问题,请参考以下文章

增强的 for 循环不适用于将值分配给数组(Java)[重复]

UILongPressGestureRecognizer 不适用于所有 UIButtons

在 ggplot2 中使用 scale_color_manual 时,绘图中的中断和值不匹配

MediaStore.EXTRA_VIDEO_QUALITY不适用于Android视频捕获

UITapGestureRecognizer 不适用于 UIView 动画

斜体字体不适用于 XCode