基于值ggplot2的深色到浅色
Dark to light colours based on value ggplot2
我正在尝试使用 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 为深色(即基于范围为 1 到 5 的 first_answer
),4 和 5 为浅色。原因很简单,因为还有更多值为 4 或 5 的线,我希望能够看到线在时间上的方向。
EDIT 图片是我目前的剧情。虽然它有点像我想要得到的,但我更愿意自己设置颜色或使用一些选择颜色的函数来自动增强绘图可见性(图中的线条)。
您可以使用 'scale_x_gradient' scale_x_gradient2
或 scale_x_gradientn
指定颜色渐变
(x 可以是 fill
或 color
)
使用 values = c(...)
指定颜色值时的注意事项:values()
根据它们在 c(0,1)
中的位置分配颜色。因此,您需要将您希望作为中断的向量中的值缩放到范围 c(0,1)。
关于您的问题,哪种调色板最适合用于 5 条不同的线条:我认为最好是像您所做的那样手动指定颜色。我经常改用十六进制代码。我亲自查看
html color codes.
我正在尝试使用 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 为深色(即基于范围为 1 到 5 的 first_answer
),4 和 5 为浅色。原因很简单,因为还有更多值为 4 或 5 的线,我希望能够看到线在时间上的方向。
EDIT 图片是我目前的剧情。虽然它有点像我想要得到的,但我更愿意自己设置颜色或使用一些选择颜色的函数来自动增强绘图可见性(图中的线条)。
您可以使用 'scale_x_gradient' scale_x_gradient2
或 scale_x_gradientn
指定颜色渐变
(x 可以是 fill
或 color
)
使用 values = c(...)
指定颜色值时的注意事项:values()
根据它们在 c(0,1)
中的位置分配颜色。因此,您需要将您希望作为中断的向量中的值缩放到范围 c(0,1)。
关于您的问题,哪种调色板最适合用于 5 条不同的线条:我认为最好是像您所做的那样手动指定颜色。我经常改用十六进制代码。我亲自查看
html color codes.