r - 如何保持 ggplot2 中绘图之间的点大小比例恒定?

标签 r ggplot2 scale point

我制作了一系列人口分布图的 GIF(使用 ggplot2 和 Image Magick),其中每个样本都有个体数量以及纬度和经度值。但是,值的范围因地 block 而异,因此地 block 之间的大小是恒定的。我试图在图表之间保持值的大小不变(即,其下方值为 30 的点的大小将大于其之前值为 10 的图)。

这是一个可重现的例子:

    #simulating latitude and longitude point creation
    a <- c("1","1")
    b <- c("2","2")
    c <- c("3","1")

    x <- rbind(a,b,c)
    x <- as.data.frame(x)

    #simulating the total individual count in my data
    mag1 <- as.numeric(c("2", "6", "10"))
    mag2 <- as.numeric(c("2", "6", "30"))

    d1 <- cbind(x, mag1)
    d2 <- cbind(x, mag2)

    #Plotting the two scatter plots
    g1 <- ggplot(data=d1, aes(x=V1, y=V2)) + geom_point(aes(size=mag1))
    g1
    g2 <- ggplot(data=d2, aes(x=V1, y=V2)) + geom_point(aes(size=mag2))
    g2

非常感谢任何帮助! (如果代码困惑,或者我的问题没有 100% 清楚地传达,我提前道歉,我是 R 的新手!)

最佳答案

使用 scale_size_continuous()并设置相同的 limits=对于所有地 block 。带参数 breaks=您可以设置您将在图例中获得的值(中断)。如果您在图上获得的最大点尺寸太小,那么您也可以更改参数 range=默认值为 range=c(1,6) .

g1 + scale_size_continuous(limits=c(1,30),breaks=c(5,10,20,30))

g2 + scale_size_continuous(limits=c(1,30),breaks=c(5,10,20,30))

关于r - 如何保持 ggplot2 中绘图之间的点大小比例恒定?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22231572/

相关文章:

javascript - 使用 phantomjs 抓取 js 渲染的内容

r - 如何使用 ggplot2 + directlabels 为标签使用自定义名称

r - ggplot 2中的多个条形图

r - 在循环内打印 gt 表,rmarkdown::render 不起作用

R:树上的聚合值

r - 如何在ggplot中为垂直线添加图例?

algorithm - 如何缩放由点组成的形状?

iphone - UILabel 重新缩放和光栅化时的图像质量问题

php - 如何检查我的代码可以处理多少流量?

sql - R:基于 "OR"语句的连接