UPDATE for reproducibility

每当我在gglot中绘制绘图时,我都无法将其另存为PDF并可靠地保留该PDF的所有元素.例如,我有以下内容:

ggplot(mtcars, aes(x=mpg, group=cyl, fill=as.factor(cyl))) +
  geom_density(adjust=1.5, alpha=.6, col= "black") +
  theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank(),
        panel.background = element_blank(), axis.line = element_line(colour = "black"),
        panel.border = element_blank(),
        text=element_text(family="times", size=20),
        axis.text=element_text(family="times", size=20),
        legend.text=element_text(family="times", size=20),
        strip.text=element_text(family="times", size=20),
        legend.position = "none")+
  scale_x_continuous(expand=c(0,0)) +
  scale_y_continuous(expand=c(0,0))

which saves fine as a .png: enter image description here

but is missing elements when saved as a .pdf: enter image description here

当我从RStudio的Plot面板保存它时,我得到了这个带有缺失元素的相同的图,使用ggsave,使用pdf()print()dev.off()方法,等等.我以为它可能是预览(我在Mac上),但在Adobe中它看起来是一样的.为什么会发生这种情况,我如何才能修复它?

我在MacOS版本14.0上运行的是r版本4.3.0到RStudio版本2023.09.1+494.

推荐答案

R中的默认字体系列是"sans"、"serif"和"mono".如果你只想要一种衬线字体,使用"serif"可以得到看起来有点像Times New Roman的字体.

请注意,图形设备确实支持不同的字体.您可以获得PDF names(pdfFonts())支持的所有系列的列表.在我的系统上,至少我确实看到了《泰晤士报》的列表.如果我用大写的"T"来运行您的代码,我确实会看到我期望的标签.因此,请确保与这些值完全匹配.事实证明,在这种情况下,"serif"只是"Times"的别名.

R相关问答推荐

R创建一个数据透视表,计算多个组的百分比

如何使用shinyChatR包配置聊天机器人

更改编号列表的 colored颜色

计算满足R中条件的连续列

根据列A中的差异变异列,其中行由列B中的相对值标识

如何将R中数据帧中的任何Nas替换为最后4个值

ComplexHEAT:使用COLUMN_SPLIT时忽略COLUMN_ORDER

如何在ggplot2中绘制具有特定 colored颜色 的连续色轮

按时间顺序对不同事件进行分组

提高圣彼得堡模拟的速度

R -基线图-图形周围的阴影区域

创建在文本字符串中发现两个不同关键字的实例的数据框

有没有办法将不等长的列表转换为R中的数据帧

如何在GALT包的函数&geom_x样条线中调整线宽

如何从嵌套数据中自动创建命名对象?在R中

Ggplot2如何找到存储在对象中的残差和拟合值?

如何在shiny 的应用程序 map 视图宣传单中可视化单点

位置_道奇在geom_point图中不躲避

使用dqur在不同变量上创建具有多个条件的变量

将y轴格式更改为R中的百分比