有没有办法将从Spatstat的K函数导出的绘图转换为ggplot或grob?
我试图使用ggpubr中的ggarrange从spatstat创建Ripley的K函数的多重绘图,即,我使用Kest计算5个景观的Ripley的K,然后将它们全部绘图。例如:有没有办法将从Spatstat的K函数导出的绘图转换为ggplot或grob?,r,plot,spatstat,R,Plot,Spatstat,我试图使用ggpubr中的ggarrange从spatstat创建Ripley的K函数的多重绘图,即,我使用Kest计算5个景观的Ripley的K,然后将它们全部绘图。例如: kk1plot<-plot(Kest(landscape)) 但是,当我尝试使用以下命令时,返回的错误是无法将class data.frame的对象转换为grob: k1<-ggarrange(kk1plot,kk2plot,kk3plot,kk4plot,kk5plot,nrow=3,ncol=2) 同
kk1plot<-plot(Kest(landscape))
但是,当我尝试使用以下命令时,返回的错误是无法将class data.frame的对象转换为grob:
k1<-ggarrange(kk1plot,kk2plot,kk3plot,kk4plot,kk5plot,nrow=3,ncol=2)
同样,当我使用补丁和代码时,我返回错误“仅知道如何添加GGPLOT和/或GROB”:
k1<-wrap_plots(list(kk1plot,kk2plot,kk3plot,kk4plot,kk5plot),nrow=3,ncol=2)
有人知道我如何将多个Ripley的K函数的输出绘制为一个绘图吗?i、 e.将spatstat的Kest输出转换为可以使用上述代码行之一操作的绘图?一种方法是使用ggplotify::as.grob将绘图捕获为grob对象
然后,您可以使用ggpubr::ggarange绘制它
正确的语法为.grob~。。。替换。。。具有绘图功能
library(ggplotify)
library(ggpubr)
library(spatstat)
for(i in 1:5){
varname <- paste0("kk",i,"plot")
assign(varname,
as.grob(~plot(Kest(rMatClust(kappa=5,r=0.1,mu=100)),
main = paste("Plot",i),
cex.axis = 0.5, cex.main = 0.6,
legendargs = list(cex = 0.2)))
)
}
ggarrange(kk1plot,kk2plot,kk3plot,kk4plot,kk5plot,nrow=3,ncol=2)
一种方法是使用ggplotify::as.grob将绘图捕获为grob对象
然后,您可以使用ggpubr::ggarange绘制它
正确的语法为.grob~。。。替换。。。具有绘图功能
library(ggplotify)
library(ggpubr)
library(spatstat)
for(i in 1:5){
varname <- paste0("kk",i,"plot")
assign(varname,
as.grob(~plot(Kest(rMatClust(kappa=5,r=0.1,mu=100)),
main = paste("Plot",i),
cex.axis = 0.5, cex.main = 0.6,
legendargs = list(cex = 0.2)))
)
}
ggarrange(kk1plot,kk2plot,kk3plot,kk4plot,kk5plot,nrow=3,ncol=2)
spatstat软件包使用基本图形。绘制多个图形的内置方式 估计的K-函数大致如下。 Kest返回的输出是一个data.frame,其不同的估计值如下 列,以便您可以自己使用相关美学来使用ggplot进行绘制 图书馆静电计
X1spatstat软件包使用基本图形。绘制多个图形的内置方式 估计的K-函数大致如下。 Kest返回的输出是一个data.frame,其不同的估计值如下 列,以便您可以自己使用相关美学来使用ggplot进行绘制 图书馆静电计
X1您需要一个ggplot对象作为元素,以便使用补丁添加类似plot_spacer+~plotKestlandscape的绘图。您需要一个ggplot对象作为元素,以便使用补丁添加类似plot_spacer+~plotKestlandscape的绘图。非常感谢。我以前从未使用过as.anylist,但它确实有效!太好了努力工作,非常感谢。我以前从未使用过as.anylist,但它确实有效!太好了这也很好,非常感谢,唯一的问题是,与上述方法相比,这种方法产生了一个压扁的传说。通过使用ggsave和定义绘图的大小,可以很容易地更正此问题。还感谢你教我如何创建Grob。这也很好,非常感谢,唯一的一点是,与上述方法相比,这种方法产生了一个压扁的传说。通过使用ggsave和定义绘图的大小,可以很容易地更正此问题。还感谢你教我如何创建grobs。