gpt4 book ai didi

r - 在 R 或 ggplot2 中向多图输出添加 Logo

转载 作者:行者123 更新时间:2023-12-01 23:45:36 24 4
gpt4 key购买 nike

我试图将 Logo 添加到从 grid.arrange 或 arrangeGrob 派生的输出中。

我有以下代码:

图书馆(ggplot2)

p1 <- ggplot(ChickWeight, aes(x=Time, y=weight, colour=Diet, group=Chick)) +
geom_line() +
ggtitle("Growth curve for individual chicks")

p2 <- ggplot(ChickWeight, aes(x=Time, y=weight, colour=Diet)) +
geom_point(alpha=.3) +
geom_smooth(alpha=.2, size=1) +
ggtitle("Fitted growth curve per diet")

p3 <- ggplot(subset(ChickWeight, Time==21), aes(x=weight, colour=Diet))
+ geom_density() +
ggtitle("Final weight, by diet")

p4 <- ggplot(subset(ChickWeight, Time==21), aes(x=weight, fill=Diet)) +
geom_histogram(colour="black", binwidth=50) +
ggtitle("Final weight, by diet")

我使用 grid.arrange(p1,p2,p3,p4,ncol=2,clip=4) 将多个地 block 放在一个地 block 上。

但是我在向上面的 grid.arrange 输出中插入 Logo 时遇到问题。

我尝试了下面的方法,但是得到了下面的错误信息。

    b <- rasterGrob(img, width=unit(5,"cm"), x = unit(40,"cm")) 
z1 <- ggplotGrob(grid.arrange(p1,p2,p3,p4,ncol=2,clip=4))
z1<- gtable_add_grob(z1,b, t=1,l=1, r=5)
grid.newpage()
grid.draw(z1)

错误:绘图中没有图层

在arrangeGrob或grid.arrange之后,有没有办法或方法在输出中添加 Logo 。

最佳答案

不是 gtable 答案,但这是添加可能有帮助的 Logo 的稍微不同的方式

library(ggplot2)
library(grid)
library(png)
library(gridExtra)

# Read png
img <- readPNG(system.file("img", "Rlogo.png", package="png"), FALSE)

# Create grobs to add to plot
my_g <- grobTree(rectGrob(gp=gpar(fill="black")),
textGrob("Some text", x=0, hjust=0, gp=gpar(col="white")),
rasterGrob(img, x=1, hjust=1))

# Plot
p <- ggplot(mtcars , aes(wt , mpg)) +
geom_line() +
theme(plot.margin=unit(c(1, 1, 1,1), "cm"))

# Add as a strip along top
grid.arrange(my_g, arrangeGrob(p,p,p,p, ncol=2), heights=c(1, 9))

enter image description here

关于r - 在 R 或 ggplot2 中向多图输出添加 Logo ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29370734/

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