R Markdown打印ggplot列表时如何不显示行号与项前缀
R Markdown移除ggplot列表打印前缀的方法
问题原因
直接对存储ggplot对象的列表整体调用print()时,R会默认输出列表的结构元信息,即## $加元素名的前缀标识,这部分是列表对象的默认打印输出,不属于ggplot图形本身的内容。
可行方案
方法1:用
purrr::walk()逐元素遍历打印walk()函数只触发打印的副作用,不会返回/输出列表本身的结构信息,代码示例:library(ggplot2) library(purrr) # 构造示例ggplot列表 plot_list <- list( plot1 = ggplot(mtcars, aes(wt, mpg)) + geom_point(), plot2 = ggplot(mtcars, aes(factor(cyl), mpg)) + geom_boxplot() ) # 遍历打印,无多余前缀 walk(plot_list, print)方法2:用基础R的for循环逐元素打印
不想额外加载purrr包的话,直接写循环逐个调用print即可,效果完全一致:for (single_plot in plot_list) { print(single_plot) }补充方案:需要批量排版图形时直接用拼接包
如果不需要逐个输出独立图形,可以用patchwork包的wrap_plots()直接拼接列表内所有ggplot对象后一次性输出,不会产生任何多余文本:library(patchwork) wrap_plots(plot_list)
注意:不要直接对整个ggplot列表执行
print(plot_list)操作,只要是整体打印列表对象,就会默认带出元素名前缀。
内容的提问来源于stack exchange,提问作者Dante
相关产品推荐
相关产品推荐

