我有一个相当特殊的问题,在面板与cowplot和出口的结果作为一个PDF文件。
考虑以下MWE:
# Load libraries
library(consort)
library(cowplot)
library(ggplotify)
# Create data for flowchart A
participant_id <- 1:10
exclusion <- rep(NA, 10)
exclusion[1:3] <- "Lost to follow-up"
df <- data.frame(participant_id, exclusion)
# Create the flowchart A
flowchart_a <- consort_plot(data = df,
orders = c(participant_id = "Invited participants",
exclusion = "Excluded",
participant_id = "Completed the study"),
side_box = c("exclusion"),
cex = 0.9)
plot(flowchart_a)
字符串
x1c 0d1x的数据
# Destroy unneeded vectors
rm(participant_id, exclusion, df)
# Create data for flowchart B
participant_id <- 1:10
exclusion <- rep(NA, 10)
exclusion[1:2] <- "Lost to follow-up"
df <- data.frame(participant_id, exclusion)
# Create the flowchart B
flowchart_b <- consort_plot(data = df,
orders = c(participant_id = "Invited participants",
exclusion = "Excluded",
participant_id = "Completed the study"),
side_box = c("exclusion"),
cex = 0.9)
plot(flowchart_b)
型
创建于2023-07-29,使用reprex v2.0.2
# Destroy unneeded vectors
rm(participant_id, exclusion, df)
# Turn the consort_plot objects into graphical objects (= grobs) for paneling
grob1 <- as.grob(function() plot(flowchart_a))
grob2 <- as.grob(function() plot(flowchart_b))
# Create panel
grid <- plot_grid(grob1, NULL, grob2,
rel_heights = c(1, 0.3, 1),
labels = c("A", "", "B"),
ncol = 1)
# Save the panel to a PDF file
save_plot("panel.pdf", grid, nrow = 2, ncol = 1.5)
型
最后,当用cowplot创建这些小图形的面板并将其导出为PDF时,项目符号会变成椭圆形(见下图)。奇怪的是,导出到PNG没有这个问题。
2条答案
按热度按时间lsmd5eda1#
虽然您的代码确实在我的机器上呈现了带有项目符号的PDF(尽管已过时:请参见底部的会话信息),您可以尝试将
save_plot
替换为{ggplot 2}的ggsave
,如下所示:字符串
来自{cowplot}的documentation:
此函数 * 的行为与ggplot 2中的ggsave()类似。主要的区别是,默认情况下,它不使用Dingbats字体进行pdf输出。Dingbats字体会导致某些pdf阅读器出现问题。
ggsave2
,save_plot
的基型
yqkkidmi2#
虽然我还没有想出一个解决我自己的问题以上,我会张贴一个明显的变通方案在这里:为什么不导出到一个SVG文件,可以很容易地转换为PDF以后(如果有必要在所有)。
如下图所示,项目符号保留在生成的SVG文件中。
字符串
创建日期:2023年7月30日,使用reprex v2.0.2
x1c 0d1x的数据
显然,另一种方法是使用
ggsave()
,它产生了看似相同的结果:型
创建于2023-07-30带有reprex v2.0.2