R ggplot2为因子分配颜色

3

我正在尝试绘制一个散点图,x轴和y轴上的数据点将根据一个因子z(五个值)着色,颜色值由一个调色板指定。我已经尝试过:

library(ggplot2)

Palette1 <- c('red','green','blue','violet','black')

p <- ggplot(df1, aes(x,y)) 

p + geom_point(aes(colour = factor(z)))
p + scale_colour_manual(values=Palette1 ) 

但是我收到了一个错误信息:
Error: No layers in plot

感谢您的帮助。

请提供您正在使用的数据 - 这对于执行您的源代码是必要的。 - hardmooth
1个回答

11

出现错误是因为您绘制了:

p + geom_point(aes(colour = factor(z)))

然后尝试制作一个新的图:

p + scale_colour_manual(values=Palette1)

这个图表没有任何层。相反,我通常在绘制时进行所有的赋值操作:

ggpot(df1, aes(x, y, colour=factor(z))) + 
    geom_point() +
    scale_colour_manual(values=Palette1)

或者你可以将第一个 p + geom_point(...) 分配给 p

p <- p + geom_point(...)

然后按照您原来的方式继续进行。


非常感谢。那非常有帮助。我该如何更改图例,使其显示为“z”而不是“factor(z)”? - adam.888
1
添加 labs(colour='z')。我建议您定期访问 ggplot2 网站、书籍和谷歌群组,它们对于理解绘图的语法和构造非常宝贵。最终(通常相当快地),通过层次构建绘图的 ggplot 概念将变得清晰,并且即使是复杂的绘图也会变得轻而易举。 - Justin
非常感谢。这个很好用,还要感谢您的建议。 - adam.888

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接