使用ggplot2中的scale_colour_manual着色变量

时间:2015-03-29 08:45:39

标签: r 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'))

我无法发布我的情节图像,所以我的数据(长格式)如下所示:

      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'变量。 关于如何缩短我的代码而不是提及“粉红色”的任何线索。一百多次?

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

1 个答案:

答案 0 :(得分:0)

基于@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)]

enter image description here