如何用R本身或tikzDevice影响R&#39的plot()输出的宽高比?

时间:2015-11-19 14:36:22

标签: r tikz

我不确定此问题是否与 R tikzDevice 有关。

我只使用R和命令plot(1)。 生成的图形的行为类似于矢量图形。它的宽高比取决于它所显示的窗口的比例。

我可以在调用plot()时设置纵横比明确吗?

xlim不会影响图形输出本身 - 只是内容(x轴上的数字)。

也许tikzDevice有办法修复宽高比? 我和tikzDevice一起使用的脚本看起来像这样。

#!/usr/bin/R -f

# load the library
library(tikzDevice)

# the output file
tikz('plot.tex')

#
plot(1, xlab='X-Axis', ylab='Y-Axis')
dev.off()

@Moderators:请添加标签' tikzDevice'。

1 个答案:

答案 0 :(得分:-1)

帮助页面?plot包含asp参数,该参数用于控制宽高比(更多详情位于?plot.window页面上)。

我不知道tikz设备是否以不同方式处理(因为绘图的高度和宽度可能会在创建绘图后发生变化),但是开始的地方是尝试类似:

plot(1, asp=1)

然后确保最终文档中绘图区域的大小相同。

修改

当您只绘制1点时,您可能看不到绘图中的太多变化,但请尝试以下命令来查看设置asp的效果:

theta <- seq(0,2*pi, length=200)
plot(cos(theta),sin(theta))
plot(cos(theta),sin(theta), asp=1)

对于默认的常规R和Rstudio(至少在我的计算机上),2个图中有明显的差异。我没有尝试使用tikz设备。

您也可以尝试使用TeachingDemos软件包中的squishplot函数(我从未尝试使用tikz设备,但在常规R中它可以作为设置宽高比的另一种方式):

library(TeachingDemos)
op <- squishplot(c(-1,1),c(-1,1), asp=1)
plot(cos(theta),sin(theta))
par(op)