ggplot:散点图,标签和图例

时间:2014-03-10 14:21:30

标签: r ggplot2

考虑以下示例(取自Stackoverflow上的另一篇文章):

require(ggplot2)
d <- data.frame(x = c(102856,17906,89697,74384,91081,52457,73749,29910,75604,28267,122136, 54210,48925,58937,76281,67789,69138,18026,90806,44893),
y = c(2818, 234, 2728, 2393, 2893, 1015, 1403, 791, 2243, 596, 2468, 1495, 1232, 1746, 2410, 1791, 1706, 259, 1982, 836),
names = c("A","C","E","D","G","F","I","H","K","M","L","N","Q","P","S","R","T","W","V","Y"))
ggplot(d, aes(x,y,col=names)) + geom_point() + geom_text(aes(label=names),hjust=1,vjust=1)

运行它然后没有最后一个“geom_text”图层会更改图例(子弹变成一个子弹,上面叠加了另一个符号)。

你能解释一下为什么,以及如何避免这种变化?感谢。

1 个答案:

答案 0 :(得分:7)

color=调用中设置ggplot()时,颜色用于点和文本标签,并且还会为点(默认符号为点)和文本(默认符号为一个)。如果您在aes() ggplot()中添加内容,则会影响使用此参数的所有图层,前提是新参数未添加到该图层。如果您需要更改文字标签的颜色但不想在图例中显示,请在show_guide=FALSE内添加参数geom_text()

ggplot(d, aes(x,y,color=names)) + geom_point() + 
  geom_text(aes(label=names),hjust=1,vjust=1,show_guide=FALSE)

如果您只想更改点的颜色,那么color=参数应放在aes()的{​​{1}}中,因此它只会影响点的颜色。

geom_point()