【问题标题】:Proportionally sized symbols in ggplotggplot中按比例大小的符号
【发布时间】:2012-09-01 12:18:15
【问题描述】:

使用 ggplot 绘制比例区域符号似乎需要使用sqrt() 来实现真正的比例:

require(ggplot2)

t <- data.frame(x=rep(c(1:5),5), y=rep(c(1:5),each=5), s=round(seq(1,100,length.out=25)))
t
p <- ggplot(data=t, aes(x=x,y=y))

# direct size-to-variable mapping
p + geom_point(aes(size=s), pch=22, fill='#0000FF75', col=NA) +
  scale_size(range = c(1, 40)) +
  geom_text(data=t, aes(x=x,y=y,label=s),size=3,vjust=1)

# proportional area size-to-variable mapping
p + geom_point(aes(size=sqrt(s)), pch=22, fill='#0000FF75', col=NA) +
  scale_size(range = c(1, 40)) +
  geom_text(data=t, aes(x=x,y=y,label=s),size=3,vjust=1)

正如您所见,当我需要它们显示原始数据时,这些标签是植根的。尝试使用 scale_size 选项,但没有任何效果。任何人都知道解决此问题,或 是否有一个模糊的设置来实现比例区域大小映射?

提前致谢。

【问题讨论】:

    标签: r ggplot2


    【解决方案1】:

    您可以使用scale_area 代替scale_size

    p + geom_point(aes(size=s), pch=22, fill='#0000FF75', col=NA) +
      scale_area(range = c(1, 40)) +
      geom_text(data=t, aes(x=x,y=y,label=s),size=3,vjust=1)
    


    我同意,这不是很明显,但也不是那么模糊——在?scale_size 的帮助中有一个使用scale_area 的示例。

    【讨论】:

    • 感谢@Andrie 解决了它。我已编辑此问题的标题以反映解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多