【发布时间】:2018-09-15 23:23:53
【问题描述】:
我有一个数据框,其中包含具有模拟值和观察值的空间变量。
df <- data.frame(sim = sample((20:30),10),
obs = sample(25:40,10),
long = rnorm(10,10,8),
lat = rnorm(10,30,15))
我使用以下代码绘制了一个空间气泡图。
ggplot() +
geom_polygon(data = shp, aes(x = long, y = lat, group = group),
col = "black", lwd = 0.8, fill = "slategray1",
alpha = 0.5) +
coord_cartesian() +
geom_point(data = df, aes(x = long, y = lat, group = sim, size = sim), col = "red", alpha = 0.5) +
geom_point(data = df, aes(x = long, y = lat, group = obs, size = obs), col = "blue", alpha = 0.5) +
scale_size_continuous(range = c(10,20)) +
coord_map(xlim = c(-1, 22), ylim = c(10, 45))
上述代码的输出在图像中。我想在图中显示的是完美完成的模拟数据和观察数据之间的差异。现在,我想为两个变量 sim 和 obs 显示两个不同的图例,它们分别是红色和蓝色的图例。此外,我想在图例中显示变量的大小,但不是以不同大小的气泡,而是以某种不同的方式。类似于给定的here。有人可以帮助我实现这一目标吗?
【问题讨论】:
-
您可以有一个颜色图例和一个尺寸图例。您不能轻易拥有两个尺寸图例(每种颜色一个)。
-
另外,i)你不能有两个坐标系,ii)
geom_point中的group没有做任何事情,iii)你可能想按区域缩放大小(@987654330 @)
标签: r ggplot2 legend spatial bubble-chart