gpt4 book ai didi

r - 在 ggmap/ggplot 中,如何以绝对值而不是相对值设置大小

转载 作者:行者123 更新时间:2023-12-05 04:08:05 28 4
gpt4 key购买 nike

在下面的简化示例中,大小变量控制要使用 geom_path 在 map 上绘制的线的相对大小。

问题是显然尺寸不是以毫米为单位(如 ggplot 的文档中所示),但对于尺寸变量中的任何两个或更多值,具有两个极值(最小值和最大值)的线以最小和最大宽度绘制可用,所有其他线都在中间某处的离散尺度上。

最大的宽度太宽了,我想把它做得更细。但是由于大小似乎与最小/最大相关,而不是绝对(毫米/像素)值,所以我无法控制实际大小。

请更改此处的 somevalue 并确保绘图之间没有任何变化。

library(ggmap)

base_layer <- get_googlemap(center = c(lon = 28.5, lat = 37) , zoom = 3 , maptype="roadmap" , size = c(640,640) , scale = 2 , color = "bw")

somevalue <- 3

df <- data.frame(
group = c("g1","g1","g2","g2"),
size = c(1,1,somevalue,somevalue),
color = c("blue","blue", "red", "red"),
lon = c(10,20,10,-10),
lat = c(52,60,52,60)
)

ggmap(base_layer) +
geom_path(data = df, aes(x = lon, y = lat, alpha = 0.6, group = group, color = color, size = size))

example

最佳答案

您可以通过两种方式控制大小:

1) 您可以使用 scale_size_identity 禁用自动缩放。

2) 您可以使用 scale_size_continuous 手动设置尺寸 range

选项 1) 将随您的数据值缩放,选项 2) 不会。

这两个都给出了相同的情节:

ggmap(base_layer) + 
geom_path(data = df, aes(x = lon, y = lat, group = group, color = color, size = size),
alpha = 0.6) +
scale_size_identity()

ggmap(base_layer) +
geom_path(data = df, aes(x = lon, y = lat, group = group, color = color, size = size),
alpha = 0.6) +
scale_size_continuous(range = c(1, 3))

enter image description here

附注请注意,当将其设置为常量时,需要将 alpha 值放在 aes 之外。

关于r - 在 ggmap/ggplot 中,如何以绝对值而不是相对值设置大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48060800/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com