无法让图像与 RStudio 上的 .Rnw 文件配合使用

无法让图像与 RStudio 上的 .Rnw 文件配合使用

大约一周以来,我一直在尝试调试我在 RStudio 中编写的 .Rnw 文件。最令人沮丧的是,它以前在当前形式下运行良好,但后来似乎莫名其妙地停止了工作。

我已将错误根源追溯到我试图添加到 pdf 文件的图形。似乎只有某些图像文件会破坏脚本。添加到 pdf 的每个图形都是使用另一个 R 脚本创建的。如果您出于任何原因需要查看该图形,请告诉我,我会进行编辑。

这是我的.Rnw 文件的基本格式:

\documentclass[
  title
]{article}
\usepackage{graphicx}

\begin{document}

<<Setup, include=FALSE, cache=FALSE>>=
##Sets up variables in paragraphs and creates data frames.
@

\title{Report Title}
\maketitle

\setcounter{secnumdepth}{-1}
\section{Report Summary}
Section Paragraph
\vspace{1cm}

\begin{figure}[h!]
  \includegraphics{Fig1.png}
\end{figure}

\end{document}

当我在 RStudio 中编译 PDF 时,出现错误Running pdflatex.exe on REPORT.tex...failed

当我查看日志文件时,我看到了以下内容:

!pdfTeX error: pdflatex.exe (file C:/Users/myname/Documents/Report/Fig1.png): libpng: 
internal error ==> Fatal error occurred, no output PDF file produced!

谁知道出了什么问题?

.png我尝试将文件中的图像更改为,.jpg结果.tiff相同。我尝试将添加\graphicspath到序言中,并尝试将完整路径添加到该\includegraphics部分。

编辑:这是我生成 fig1.png 图像的方法。这应该允许您在 RStudio 中重新创建一个示例。我不得不手动复制此代码,因此可能存在拼写错误。此外,它当然看起来很糟糕,因为我刚刚使用示例 mtcars 数据集重新创建了图像格式。

png("C:/Users/UserName/Documents/Report/Fig1.png", height = 7, width = 14, units = 'in', res = 350)
p<-ggplot(mtcars, aes(color = mpg, x = cyl, y disp, group = mpg)) + 
  geom_line() + geom_point(shape = 16, size = 2) + coord_cartesian(ylim = c(0,550)) +
  labs(x = "X Axis", y = "Y Axis") +
  ggtitle(expression(atop("Title", atop(italic("Subtext"), "")))) + 
  stat_summary(fun.y=sum, geom="line") +
  theme(plot.title = element_text(face = "bold", size = 16, vjust = 1.5)) + 
  theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1)) + 
  theme(axis.title.y = element_text(vjust = 1))
p
dev.off()

答案1

您输出fig1.png,但尝试包含Fig1.png。 TeX 区分大小写。

以下工作:

\documentclass[
  titlepage
]{article}
\usepackage{graphicx}

\begin{document}

<<Setup, include=FALSE, cache=FALSE>>=
library(ggplot2)
png("Fig1.png", height = 7, width = 14, units = 'in', res = 350)
p<-ggplot(mtcars, aes(color = mpg, x = cyl, y = disp, group = mpg)) + 
  geom_line() + geom_point(shape = 16, size = 2) + coord_cartesian(ylim = c(0,550)) +
  labs(x = "X Axis", y = "Y Axis") +
  ggtitle(expression(atop("Title", atop(italic("Subtext"), "")))) + 
  stat_summary(fun.y=sum, geom="line") +
  theme(plot.title = element_text(face = "bold", size = 16, vjust = 1.5)) + 
  theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1)) + 
  theme(axis.title.y = element_text(vjust = 1))
p
dev.off()
@

\title{Report Title}
\maketitle

\setcounter{secnumdepth}{-1}
\section{Report Summary}
Section Paragraph
\vspace{1cm}

\begin{figure}[h!]
  \includegraphics{Fig1.png}
\end{figure}

\end{document}

顺便说一句,最好使用矢量图形并自动生成图形。在我看来,以下是更好的样式:

\documentclass[
  titlepage
]{article}
\usepackage{graphicx}

\begin{document}

<<Setup, include=FALSE, cache=FALSE>>=
library(ggplot2)
@

\title{Report Title}
\maketitle

\setcounter{secnumdepth}{-1}
\section{Report Summary}
Section Paragraph
\vspace{1cm}

\begin{figure}[h!]
<<Fig1, echo=FALSE>>=
p<-ggplot(mtcars, aes(color = mpg, x = cyl, y = disp, group = mpg)) + 
  geom_line() + geom_point(shape = 16, size = 2) + 
  coord_cartesian(ylim = c(0,550)) +
  labs(x = "X Axis", y = "Y Axis") +
  ggtitle(expression(atop("Title", atop(italic("Subtext"), "")))) + 
  stat_summary(fun.y=sum, geom="line") +
  theme(plot.title = element_text(face = "bold", size = 16, vjust = 1.5)) + 
  theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1)) + 
  theme(axis.title.y = element_text(vjust = 1))
p
@ 
\end{figure}

\end{document}

相关内容