ggplot 2 - 使用数值更改图例类别(无因子)

时间:2014-04-29 16:58:18

标签: r ggplot2 legend numeric

假设我使用mtcars数据集。我想根据重量(wt)设置点的大小。如果我这样做,如下所示,R / ggplot2将给我一个4类(2,3,4,5)的图例。

library(ggplot2)
mtc <- mtcars
p1 <- ggplot(mtc, aes(x = hp, y = mpg))
p1 <- p1 + geom_point(aes(size = wt))     
print(p1)

如何更改图例的比例/名称/类别。如果&#34;类别&#34;我找到了关于如何做到这一点的信息。会是因素,但我不知道如何使用数值来做到这一点。我需要保持数字,否则它不再适用于点的大小。

我的真实数据集有大约100个wt值(从1-150开始),我想保留5个值。 (ggplot 2给我2 - > 50和100)

1)如何更改该图例的比例?例如,在mtc示例中,我只想要2个大小为2和5的点

2)我正在考虑制作以下类别:

mtc$wtCat[which(mtc$wt<=2)]=1
mtc$wtCat[which(mtc$wt>2 & mtc$wt<=3)]=2
mtc$wtCat[which(mtc$wt>3)]=3

p1 <- ggplot(mtc, aes(x = hp, y = mpg))
p2 <- p1 + geom_point(aes(size = wtCat), stat="identity")     
print(p2)

然后只需将图例中的1,2,3重命名为&lt; = 2,2-3和&gt; 3,但我也没有弄清楚如何做到这一点。

非常感谢你。

1 个答案:

答案 0 :(得分:5)

您可以在图例中使用scale_size_continuous()和参数breaks=设置级别,并使用参数labels=更改图例条目的标记方式。

ggplot(mtcars,aes(hp,mpg,size=wt))+geom_point()+
  scale_size_continuous(breaks=c(2,5),labels=c("<=2",">2"))