gpt4 book ai didi

r - 在 ggplot2 中绘制 geom_ raster() 的边距图

转载 作者:行者123 更新时间:2023-12-03 09:17:01 24 4
gpt4 key购买 nike

我正在尝试使用一些数据绘制栅格 map ,以及该数据的边距图。有点像 levelplot() 函数,或者使用颜色(反射(reflect)绘图内的颜色)而不是线条更好。看看我正在尝试做什么,下面就会很清楚了。 rasterVis 示例(带密度线):

/image/QiaUu.png

但是,我想使用ggplot2。下载data used in this example (8KB)。

我尝试使用grid.arrange():

library(ggplot2)
library(raster)
library(maps)
library(grid)
library(scales) #for muted()
library(gridExtra)

load("example.Rsave") #load data

#prepare data for the margin plot
var=tp_rlim; min=0; max=1; mid=0.5
varname <- colnames(var)[3]
zonal <- aggregate(var[,3], list(var$Lat), mean)
colnames(zonal) <- c("Lat", varname)

#plot the margin plot
ggzonal <- ggplot(zonal, aes(x="", y=Lat, fill=tp))+
geom_raster() +
theme(legend.position="none",
axis.title.x = element_blank(),
axis.title.y = element_blank(),
axis.ticks = element_blank(),
axis.text.x = element_blank(),
axis.text.y = element_blank()
) +
scale_fill_gradient2(limits=c(min, max), space="Lab", midpoint=mid)

#plot main plot
gg <- ggplot(var, aes_string(x="Lon", y="Lat", fill=varname)) +
geom_raster() +
coord_quickmap(xlim = range(var$Lon), ylim = range(var$Lat)) +
scale_fill_gradient2(limits=c(min, max), space="Lab", midpoint=mid) +
theme(legend.position="bottom",
legend.key.width = unit(1.5, "cm"),
legend.key.height = unit(0.3, "cm"),
legend.title=element_blank()
) +
borders(region=unique(na.omit(map.where("world", var$Lon, var$Lat))), colour="black")

grid.arrange(gg, ggzonal, ncol=2, widths=c(5, 1))

但结果却不尽如人意: enter image description here

我也尝试过使用ggExtra::ggMarginal,但是:

ggExtra::ggMarginal(gg)

enter image description here

或者:

ggExtra::ggMarginal(gg, type="histogram")

enter image description here

我该怎么做?

最佳答案

这可能有用,

# fix the ylim of annotation plot
gg2 = ggzonal + coord_cartesian(ylim = range(var$Lat))
# devtools::install_github("baptiste/egg")
library(egg)
ggarrange(gg, gg2, widths = c(10,1))

enter image description here

关于r - 在 ggplot2 中绘制 geom_ raster() 的边距图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36501486/

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