1

我正在尝试使用 ggplot2 自定义颜色。我写的函数如下:

library(tidyverse)
spaghetti_plot_multiple <- function(input, MV, item_level){
  MV <- enquo(MV)
  titles <- enquo(item_level)
  input %>% 
    filter(!!(MV) == item_level) %>% 
    mutate(first_answer = first_answer) %>%
    ggplot(.,aes( x = time, y = jitter(Answer), group = ID)) +
    geom_line(aes(colour = first_answer)) +
    labs(title = titles ,x = 'Time', y = 'Answer', colour = 'Answer given at time 0') +
    facet_wrap(~ ID, scales = "free_x")+ 
    theme(strip.text = element_text(size = 8)) + 
    scale_color_manual(values = c('red', 'blue', 'brown', 'purple', 'black'))
}

然而这不起作用,但我似乎无法弄清楚为什么scale_color_manual(..)值不起作用。我正在使用的当前情节是:

在此处输入图像描述

这有点符合我想要达到的效果:值 1-3 的深色(即基于first_answer1 到 5 的范围)和 4 和 5 的浅色。原因很简单,因为有更多的行值为 4 或 5,我希望能够看到跨时间线的方向。

编辑图像是我目前拥有的情节。虽然它有点像我想要的,但我更愿意自己设置颜色或使用一些选择颜色的函数来自动增强绘图可见性(图中的线条)。

4

1 回答 1

2

您可以使用“scale_x_gradient” scale_x_gradient2scale_x_gradientn (x 可以是fillcolor)指定颜色渐变

values = c(...)使用)指定颜色值时的注意事项:values()根据颜色在c(0,1). 因此,您需要将要作为中断的向量中的值缩放到范围 c(0,1)。

关于您的问题,哪个调色板最适合用于 5 条不同的线条:我认为最好的方法是像您所做的那样手动指定颜色。我经常使用十六进制代码。
我个人在html 颜色代码中查找这些。

于 2018-02-28T22:13:42.513 回答