更改图例中指示值的点大小的缩放比例

Change the scaling in the legend for the size of dots which indicates the value

我正在设置散点图,点的大小表示测量所基于的样本数。

值/点的样本大小分布偏斜。

许多样本量从 10 到 50,而其他样本量基于 500 或 1000 次测量。

我想更改图例,以指示样本大小 10 和 50 以及 500 和 1000 的点大小。

哪个设置允许这样做?

gg.pf0<-ggplot(bc.pf,aes(x=age.WERT,y=weight,color=as.factor(bc.pf$Group),size=(bc.pf$n)))
(gg.pf1<-gg.pf0 + geom_point(aes(alpha=0.5)))

两条一般评论:

  1. 你应该永远不要aes中使用$索引。请参阅 以了解如果这样做会出现什么问题。
  2. 您应该始终 提供可重复的最小样本,以便 SO 受访者有一些东西可以使用。明确的样本数据通常也有助于避免数据类型方面的歧义。

关于你的问题,你可以使用scale_size_continuous。这是一个基于 mtcars

的可重现示例
ggplot(mtcars, aes(mpg, disp, size = hp)) +
    geom_point() +
    scale_size_continuous(
        breaks = c(10, 50, 500, 1000),
        limits = c(0, 1000))

请注意,scale_size 缩放点的面积,而 scale_radius 缩放半径。 scale_size 的替代方法是 scale_size_area,它确保值 0 映射到大小 0。