在 ggplot2 中使用 scale_colour_manual 着色变量

Colouring variables using scale_colour_manual in ggplot2

所以我使用下面的代码来绘制我的数据:

ggplot(df, aes(Pi, value, color = variable)) + 
geom_point(shape=4) + geom_line() + 
scale_colour_manual(values = c('pink', 'pink', 'pink', 'pink', 'pink', 'pink', 'pink', 'pink', 'pink', 'pink', 'orange'))

我还不能 post 我的情节的图像,所以我的数据(长格式)看起来像这样:

      Pi   variable    value
    0.4038   X1      2.778755e-01
             .
             .
             .
    0.7782   X10     3.455836e-01
             .
    0.0023   Sqi     5.654000e+00

在我的代码中,我手动将变量 'X1' 的颜色设置为 'X10'(粉红色)和 'Sqi'(橙色),因为它们按顺序排列df.

最后我想将 'X1' 添加到 'X100' 变量(每个变量有 50 个值),除了 'Sqi' 变量外,所有变量都具有相同的颜色。 关于如何缩短我的代码而不是提到 'pink' 一百次的任何线索?

此外,如果我可以指定我想要 geom_line() 的变量,那将会很有帮助。 谢谢!

根据@jazzurro 的评论,要调整线条颜色和大小(或线型),您可以这样做。你必须确保你的颜色和大小变量是因素,否则你会得到一个错误:Error: Continuous value supplied to discrete scale

x <- c(1:3, 4:6)
y <- c(3:5, 8:10)
line.col <- c("pink", "orange", "blue")
width <- c(2, 3, 5)
df <- data.frame(x=x, y=y, line.col=line.col, width = width)

ggplot(df, aes(x=x, y=y, color = line.col, size = factor(width))) +
  geom_line() +
  scale_color_manual(values = line.col) +
  scale_size_manual(values = df$width)]