如何将 ggpubr 图添加到另一个图中?
How to add a ggpubr plot into another plot?
我试图用与平均值的标准偏差来赞美我的 ggdotchart,但是,我不能以一种美观的方式这样做。因此我需要更改图层的顺序,但我无法使其正常工作。
library(ggpubr)
# Load data
data("mtcars")
dfm <- mtcars
# Convert the cyl variable to a factor
dfm$cyl <- as.factor(dfm$cyl)
# Add the name colums
dfm$name <- rownames(dfm)
ggdotchart(dfm, x = "name", y = "mpg",
color = "cyl", # Color by groups
palette = c("#00AFBB", "#E7B800", "#FC4E07"), # Custom color palette
sorting = "descending", # Sort value in descending order
add = "segments", # Add segments from y = 0 to dots
rotate = TRUE, # Rotate vertically
group = "cyl", # Order by groups
dot.size = 6, # Large dot size
label = round(dfm$mpg), # Add mpg values as dot labels
font.label = list(color = "white", size = 9,
vjust = 0.5), # Adjust label parameters
ggtheme = theme_pubr() # ggplot2 theme
) + geom_errorbar(aes(x = name, ymin = mpg - sd(mpg), ymax = mpg + sd(mpg)), position = "identity")
这会导致点上方的误差条,而我希望它位于点的后面。我试图反转图层,但无法正常工作。在普通的 ggplot 中,它只是改变了顺序,但是,包使它很难这样做。
虽然我喜欢 link 中的答案,但我认为它带来了一些不必要的复杂性。我们可以按任何顺序保存绘图,然后更改它们,而不是将不同的 geoms
连接到我们的绘图。
g$layers[c(4,1,2,3)] -> g$layers
其中 g
是您的情节,前三层来自 ggdotchart
。
为了完成:
如果您想使用评论中建议的解决方案,则为:
g$layers <- c(geom_errorbar(aes(x = name, ymin = mpg - sd(mpg), ymax = mpg + sd(mpg)),
position = "identity"),
g$layers)
此处,g
是您代码的 ggdotchart
部分,没有 geom_errorbar
。
我试图用与平均值的标准偏差来赞美我的 ggdotchart,但是,我不能以一种美观的方式这样做。因此我需要更改图层的顺序,但我无法使其正常工作。
library(ggpubr)
# Load data
data("mtcars")
dfm <- mtcars
# Convert the cyl variable to a factor
dfm$cyl <- as.factor(dfm$cyl)
# Add the name colums
dfm$name <- rownames(dfm)
ggdotchart(dfm, x = "name", y = "mpg",
color = "cyl", # Color by groups
palette = c("#00AFBB", "#E7B800", "#FC4E07"), # Custom color palette
sorting = "descending", # Sort value in descending order
add = "segments", # Add segments from y = 0 to dots
rotate = TRUE, # Rotate vertically
group = "cyl", # Order by groups
dot.size = 6, # Large dot size
label = round(dfm$mpg), # Add mpg values as dot labels
font.label = list(color = "white", size = 9,
vjust = 0.5), # Adjust label parameters
ggtheme = theme_pubr() # ggplot2 theme
) + geom_errorbar(aes(x = name, ymin = mpg - sd(mpg), ymax = mpg + sd(mpg)), position = "identity")
这会导致点上方的误差条,而我希望它位于点的后面。我试图反转图层,但无法正常工作。在普通的 ggplot 中,它只是改变了顺序,但是,包使它很难这样做。
虽然我喜欢 link 中的答案,但我认为它带来了一些不必要的复杂性。我们可以按任何顺序保存绘图,然后更改它们,而不是将不同的 geoms
连接到我们的绘图。
g$layers[c(4,1,2,3)] -> g$layers
其中 g
是您的情节,前三层来自 ggdotchart
。
为了完成:
如果您想使用评论中建议的解决方案,则为:
g$layers <- c(geom_errorbar(aes(x = name, ymin = mpg - sd(mpg), ymax = mpg + sd(mpg)),
position = "identity"),
g$layers)
此处,g
是您代码的 ggdotchart
部分,没有 geom_errorbar
。