【问题标题】:ggplot: Scatter plot, labels and legendggplot:散点图、标签和图例
【发布时间】:2014-03-10 14:21:29
【问题描述】:

考虑以下示例(取自 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”层的情况下运行它会改变图例(项目符号变成一个项目符号,上面叠加了另一个符号)。

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

【问题讨论】:

    标签: r ggplot2


    【解决方案1】:

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

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

    如果你只想改变点的颜色,那么color=参数应该放在geom_point()的aes(),所以它只会影响点的颜色。

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

    【讨论】:

      猜你喜欢
      • 2021-01-29
      • 2014-09-08
      • 1970-01-01
      • 1970-01-01
      • 2018-08-30
      • 2021-11-17
      • 2019-07-08
      • 2015-07-04
      • 2010-12-21
      相关资源
      最近更新 更多