【发布时间】:2021-07-14 09:17:22
【问题描述】:
有人问了类似的问题,但我还没有找到解决我的具体问题的方法。
如何导出相同维度的图?这是我的例子:
来自 mpg 数据集的散点图,在图 1 中具有刻面年份。图 2 是相同的图,但仅包含一年的数据(一个而不是两个刻面)。 我使用 ggsave() 将绘图导出为 .pdf。
library(tidyverse)
p1 <- ggplot(mpg, aes(x = displ, y = cty, color = class))+
geom_point()+
facet_wrap(. ~ year)
p2 <- ggplot(filter(mpg, year == 1999), aes(x = displ, y = cty, color = class))+
geom_point()+
facet_wrap(. ~ year)
ggsave(p1, filename = "p1.pdf")
ggsave(p2, filename = "p2.pdf")
生成的图(在标准 pdf 导出设置下,在本例中为 8.74 x 9.02)如下所示:
各个图保持其线粗、字体大小等,但绘图区域或各个面的大小不会改变,因此条形的宽度也会发生变化。
我了解,我可以调整 pdf 的大小,如下所示:
ggsave(p1, filename = "p1_manual_size.pdf", width = 16, height = 9.02 )
ggsave(p2, filename = "p2_manual_size.pdf", width = 8.74, height = 9.02)
这就是它们的外观:
这在某些情况下相当有效,但如果情节变得更加复杂(更多方面,图例的不同位置等),维护情节区域将变得非常复杂(并且大多数情况下是不可能的)比率。
那么,问题来了: 是否可以在 ggplot2 中保持绘图的这些比率,以便距离(例如 x 轴元素/刻度之间的距离)保持不变,并且添加的元素越多(x 轴上的值越多),导出的绘图越宽会变成?
如果可以遵循与 GraphPad Prism 相同的逻辑,那就太好了,其中绘图被绘制在 A4 画布的中间,如果有更多的列(和单独的列),它们会变得更大保持相同的宽度)。
不确定我是否很好地表达了这个问题,我希望你能明白我的意思。
非常感谢任何帮助!
最好, 本
【问题讨论】:
标签: r pdf ggplot2 export data-visualization