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

Roc*_*cer 2 r numeric legend ggplot2

假设我使用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)
Run Code Online (Sandbox Code Playgroud)

如何更改图例的比例/名称/类别.如果"类别"是因素,我找到了有关如何执行此操作的信息,但我不知道如何使用数值来执行此操作.我需要保持数字,否则它不再适用于点的大小.

我的真实数据集有大约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)
Run Code Online (Sandbox Code Playgroud)

然后只需将图例中的1,2,3重命名为<= 2,2-3和> 3,但我也不知道如何做到这一点.

非常感谢.

Did*_*rts 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"))
Run Code Online (Sandbox Code Playgroud)