R语言 geom_line()的三种颜色组合

kpbwa7wx  于 2023-06-03  发布在  其他
关注(0)|答案(1)|浏览(198)

我有不同实验设置的时间序列数据。这些实验是在改变三个参数时获得的。我需要把这些时间序列画成线形图。每一行都应该有自己的颜色,这取决于输入参数值。
我规范化了参数值,现在它们看起来像x1c 0d1x
1表示参数对于该实验具有其最大值,并且0 -最小值。我想在我的每一个情节线是三种不同颜色的组合。我试了这个代码:
results$mixed_color <- rgb(results$rescaled_color1,results$rescaled_color2,results$rescaled_color3) ggplot(data=results,aes(x= step,y= average,group = Scenario,color = mixed_color))+ geom_line(size=1.5)+ scale_color_manual(values = results$mixed_color,labels = unique(results$Scenario))

我需要改变代码,这样我就可以选择我自己的三种颜色,它们将混合起来绘制线条。目前,我使用的是绿色、红色和蓝色的组合。但我想用#f0e442、“#0072b2”和“red”来替换它。我该怎么做?

ctrmrzij

ctrmrzij1#

您可以使用标识色标轻松地完成此操作,可以使用aes(color = I(...)),也可以使用不太模糊的+ scale_color_identity
我只是假设你的数据是什么样的。

library(tidyverse)

## creating data that should look somewhat like yours
set.seed(42)
df_cols <- setNames(data.frame(replicate(3, runif(10))), c("r", "g", "b"))
df_cols$color <- with(df_cols, rgb(r, g, b))
df_cols$run <- letters[1:nrow(df_cols)]

df_lines <- data.frame(run = rep(letters[1:10], each = 10), x = rep(1:10, 10), y = rnorm(100))

df <- left_join(df_lines, df_cols[c("run", "color")], by = "run")

## now you can basically start here
ggplot(df, aes(x, y, color = color)) +
  geom_line() +
  scale_color_identity()

创建于2023-05-31带有reprex v2.0.2

相关问题