小编Rgu*_*guy的帖子

在RStudio中循环绘图

我正在实施R(模拟退火)中的旅行商问题(TSP)的解决方案,我想定期输出当前的最佳路径.我已经搜索了很多关于如何在for循环期间输出图并且迄今为止失败的信息.

我使用RStudio,并希望在生成图形时看到它们.如果您曾经看过TSP解决方案,那么您将了解它的酷炫程度.以下是我想看到的图形输出示例http://www.staff.science.uu.nl/~beuke106/anneal/anneal.html

我不认为内存使用会是一个问题(在大约500,000次迭代期间,我只期望50-100个图).这是一个示例函数,我们期望在函数运行期间看到10个不同的图:

Plotz <- function(iter = 1000000, interval = 100000) {
  x <- 1:10
  for(i in 1:iter){
    y <- runif(10)
    if(i %% interval == 0) {
      plot(x, y)
    }
  }
  return(c(x, y))
}
Plotz()
Run Code Online (Sandbox Code Playgroud)

当我运行这个时,我看到的是最终的情节(在RStudio中).我怎样才能看到生成的图?

另外:我在Ubuntu上(无论最新的稳定版本是什么).不知道这是否相关.

提前谢谢大家.

编辑:根据Murphy上尉的建议,我尝试在Linux终端中运行它,并且出现了图形.我仍然想到"如何在RStudio中做到这一点?"的问题.然而,仍然是相关的.这是一个非常好的程序,所以也许有人知道如何才能让它发挥作用?

EDIT2:正如Thilo所说,这是Rstudio中的一个已知错误.如果有人在没有修复软件的情况下有任何其他想法来解决这个问题,那么还有一些事情需要讨论.否则,请考虑解决此问题.

plot r rstudio

16
推荐指数
3
解决办法
3万
查看次数

如何在LaTeX文档中包含复杂的R图?

我遇到以下代码片段的问题:

\documentclass{article}
\usepackage{graphicx}
\begin{document}
\includegraphics{myscatterplot.pdf}
\end{document}
Run Code Online (Sandbox Code Playgroud)

其中"myscatterplot.pdf"由R中的以下代码生成:

library(scatterplot3d)
pdf("myscatterplot.pdf")
scatterplot3d(rnorm(100), rnorm(100), 1:100, highlight.3d = TRUE)
dev.off()
Run Code Online (Sandbox Code Playgroud)

问题是,使用texworks(pdfLatex + makeindex + bibtex)进行编译时生成的LaTeX文档具有图形轴,但绘图或轴标签中没有任何点(在这种情况下,它只是3d轴本身).R或LaTeX不输出错误或警告消息.我在用:

  • Windows 7上的R 2.12.1,
  • MiKTeX 2.8,
  • TEXworks的
  • Adobe Reader 9(不确定这是否相关......)

我已经能够使用\ includegraphics命令包含该图的png版本,并用adobe打开"myscatterplot.pdf",在我的文档中显示我想要的图形.

我曾尝试使用tikz软件包作为一种解决方法,但似乎scatterplot3d生成了太多信息,由于内存大小,结果图不能包含在乳胶文档中(错误(我的实际情节将有10000 +点! ).

我怀疑问题是由于".pdf"文件中的字体引起的,但我试图改变pdf字体使用

pdf("changefont.pdf")
par(family = "Helvetica")
scatterplot3d(rnorm(100), rnorm(100), 1:100, highlight.3d = TRUE)
dev.off()
Run Code Online (Sandbox Code Playgroud)

使用\ includegraphics(changefont.pdf)时得到的结果完全相同.

我正在考虑的另一个可能的问题是,scatterplot3d输出实际上可能是多个图像,而\ includegraphics只是从pdf文件中获取第一个图形(轴).在这种情况下,我仍然不确定如何解决它.

我真的很感激一种解决方法,因为我最终希望用Sweave完成所有这些工作,这让我对包装的美妙输出感到痛苦!

提前感谢您的回复.

编辑1:

因此,第一个建议是使用EPS格式而不是pdf.这产生了一些结果,但不是我想要的结果.我运行了以下内容:

\documentclass{article}
\usepackage{graphicx,epstopdf}
\begin{document}
\begin{figure}
\includegraphics[angle = 270, width= 6in, keepaspectratio=true]{change.eps}
\end{figure}
\end{document}
Run Code Online (Sandbox Code Playgroud)

我使用生成了"change.eps"

postscript("change.eps")
scatterplot3d(rnorm(100), rnorm(100), 1:100, highlight.3d = TRUE)
dev.off()
Run Code Online (Sandbox Code Playgroud)

确实产生了一个改进(尽管奇怪的是,它在乳胶输出中顺时针旋转了90度!),现在我的乳胶输出中的散点图中有轴和点!但是,即使我使用ghostview打开了"change.eps",轴标签仍然没有出现在图中!似乎scatterplot3d输出数字的方式与\ includegraphics搜索数字的方式不一致...... …

pdf latex r sweave

12
推荐指数
1
解决办法
7997
查看次数

标签 统计

r ×2

latex ×1

pdf ×1

plot ×1

rstudio ×1

sweave ×1