R 在图像顶部绘制多个ggplot2
我有一个基于ggplot2的定制绘图函数 我现在想做的是,用这个画几个图 函数位于背景图像之上(作为png加载) 我不想将绘图放置在常规网格上,而是 在图像上的选定位置 (此类图的一个示例如图所示 ) 在我看来,我需要在不同的环境中绘制每个绘图,以及在图像上选择坐标放置这些环境的方法 有人能告诉我正确的软件包/教程/博客等吗 这有什么用 真诚地,R 在图像顶部绘制多个ggplot2,r,ggplot2,lattice,R,Ggplot2,Lattice,我有一个基于ggplot2的定制绘图函数 我现在想做的是,用这个画几个图 函数位于背景图像之上(作为png加载) 我不想将绘图放置在常规网格上,而是 在图像上的选定位置 (此类图的一个示例如图所示 ) 在我看来,我需要在不同的环境中绘制每个绘图,以及在图像上选择坐标放置这些环境的方法 有人能告诉我正确的软件包/教程/博客等吗 这有什么用 真诚地, Halldór通过ggplot查看嵌入式绘图: 和ggsubplot-包 或者通过-ggplot2::annotation\u光栅“手动”完成此操作
Halldór通过ggplot查看嵌入式绘图: 和
ggsubplot
-包
或者通过-ggplot2::annotation\u光栅“手动”完成此操作
拍摄这张照片:
require(ggplot2)
需要(png)
图书馆(RCurl)
myurl使用一种示例性方法:
library(png)
ima <- readPNG("C:/Users/MyPC/Desktop/rus.png")
png <- "C:/Users/MyPC/Desktop/rus.png"
ima <- readPNG(png)
library(ggplot2)
tm <- theme(
panel.background = element_rect(fill = "transparent",colour = "black"), # or theme_blank()
panel.grid.minor = element_blank(),
panel.grid.major = element_blank(),
plot.background = element_rect(fill = "transparent",colour = NA)
)
plot.new()
lim <- par()
rasterImage(ima, lim$usr[1], lim$usr[3], lim$usr[2], lim$usr[4])
library(grid)
vp <- viewport(.25, 0.65, width =.3, height = .3)
pl <- ggplot(mtcars, aes(x = mpg)) + geom_histogram() + tm
print(pl, vp = vp)
pl2 <- ggplot(mtcars, aes(x = mpg, y = wt)) + geom_line() + tm
vp2 <- viewport(.75, 0.65, width =.3, height = .3)
print(pl2, vp = vp2)
pl3 <- ggplot(mtcars, aes(x = mpg, y = wt)) + geom_line() + tm
vp3 <- viewport(.5, 0.4, width =.3, height = .3)
print(pl3, vp = vp3)
库(png)
ima像这样过于笼统的问题在SO中被认为是离题的,特别是因为它需要软件包记录和教程。也许这些规则对其他一个stackexchange场地的要求会不那么严格。为什么不在地理信息系统论坛上回顾一下这些术语呢?如果我没弄错的话,那是图像覆盖了一幅图,而不是图像覆盖了一幅图,谢谢。我的问题可能可以通过嵌入图来解决。感谢您的链接。@baptiste它取决于ggplot命令的顺序(即添加图层的顺序)。如果在annotation\u graster
之前调用geom\u point
,图像将绘制在点上方,其他点将绘制在图像上方。或者annotation\u custom(ggplotGrob(p))
谢谢,似乎就是这样!使用grid.graster
而不是rasterImage
,可能更有意义;通常,最好避免混合基本图形和网格图形。
library(png)
ima <- readPNG("C:/Users/MyPC/Desktop/rus.png")
png <- "C:/Users/MyPC/Desktop/rus.png"
ima <- readPNG(png)
library(ggplot2)
tm <- theme(
panel.background = element_rect(fill = "transparent",colour = "black"), # or theme_blank()
panel.grid.minor = element_blank(),
panel.grid.major = element_blank(),
plot.background = element_rect(fill = "transparent",colour = NA)
)
plot.new()
lim <- par()
rasterImage(ima, lim$usr[1], lim$usr[3], lim$usr[2], lim$usr[4])
library(grid)
vp <- viewport(.25, 0.65, width =.3, height = .3)
pl <- ggplot(mtcars, aes(x = mpg)) + geom_histogram() + tm
print(pl, vp = vp)
pl2 <- ggplot(mtcars, aes(x = mpg, y = wt)) + geom_line() + tm
vp2 <- viewport(.75, 0.65, width =.3, height = .3)
print(pl2, vp = vp2)
pl3 <- ggplot(mtcars, aes(x = mpg, y = wt)) + geom_line() + tm
vp3 <- viewport(.5, 0.4, width =.3, height = .3)
print(pl3, vp = vp3)