ggplot PDF 图像的部分内容消失

ggplot PDF 图像的部分内容消失

我正在使用tufte-bookdocumentclass 和模板。我一直将ggplot2图像导出为 PDF 格式,然后在figure环境中将它们包含在 LaTeX 中。

一切都很顺利,直到有一天,图表中的一些点突然消失了。它们在文档的先前版本中是存在的。具体来说,点形状 16 位于ggplot2(默认形状geom_point)不再显示。其他形状显示正常。我尝试重新安装ggplot2,试图摆脱tufte-book(如 reprex 中所示),没有成功。我也尝试过使用 xelatex 和 pdflatex 进行构建。这更加令人困惑,因为它用过的运行正常,我想不出我还可以做哪些更改。任何建议都将不胜感激。

作为参考,这是实际的ggplot2- 生成的 PDF 包括:

实际图像

以下是它在我的 LaTeX 文档中的显示方式(在 tufte-latex 版本中,尽管该问题也出现在 reprex 中的 documentclass{article} 版本中):

LaTeX 中的图像

这是代码。我认为我在这里没有做任何不寻常的事情:

生成图表:

library(tidyverse)

# Police and crime
library(wooldridge)
data(crime4)

ggplot(crime4, aes(x = polpc, y = crmrte)) + 
  geom_point() + 
  theme_minimal() + 
  scale_x_log10() + 
  scale_y_log10() + 
  labs(x = "Police per Capita (log scale)",
       y = "Crime Rate (log scale)")
ggsave('crime1.pdf', width = 6, height = 5)

LaTeX 文档本身

\documentclass{article}

\usepackage{graphicx}

\begin{document}

\begin{figure}[h!]
    \caption{Police Presence and Crime Rate by County, North Carolina 1981-1987}
    \label{fig:causaldiagrams-crime1}
    \includegraphics{"crime1.pdf"}
\end{figure}

\end{document}

答案1

抱歉,我无法评论,所以我必须回答:当您从另一个 pdf 查看器打开编译后的文档时,预览中的点是否丢失?我遇到了同样的问题,这些点只在内置的 TeXmaker pdf 查看器中丢失,在其他程序中没有丢失……在我的情况下,R 中生成的所有圆形点({16, 19, 20, 21} 中的 pch)都丢失了,但似乎只是pdf 查看器的一个问题(即它能理解的符号)。尝试使用正确显示绘图 pdf 的同一 pdf 查看器打开您编译的完整文档。如果它有效,则始终是 pdf 查看器。

此外,请注意,“相同”的 PDF 查看器可能会因操作系统的不同而有不同的表现。我最初以为是操作系统的问题,因为 TeXmaker 在 Linux 下显示点,但在 Windows 下不显示。所以我做了两次“同样的事情”,但结果不同。

我想这就像 Marijin 提到的一个问题,R 使用的圆圈符号无法正确显示。您可以使用建议的cairo_pdf设备代替 pdf,或者使用其他符号代替圆圈。您也可以尝试

geom_text(label = "\u2022", size = 10)

(可能需要包Unicode(?))。绘制文本而不是点,您可以尝试不同的符号或字符系列。

更新:我还发现,将点的不透明度设置为不同于 1 的值(例如,在 ggplot 中只需设置alpha=0.99)将阻止 R 使用“有问题的” ZapfDingbats 字符。可能值得一试,它似乎对我有用。

相关内容