如何影响 R 的 plot() 输出与 R 本身或 tikzDevice 的纵横比?
How to influence the aspect ratio of R's plot() output with R itself or tikzDevice?
我不确定这个问题是否与 R 或 tikzDevice.
有关
我只是使用 R
和命令 plot(1)
。
生成的 graphic 表现得像矢量图形。它的纵横比取决于显示它的 window 的比例。
我可以在调用 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()
@版主:请加标签'tikzDevice'.
帮助页面 ?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)
我不确定这个问题是否与 R 或 tikzDevice.
有关我只是使用 R
和命令 plot(1)
。
生成的 graphic 表现得像矢量图形。它的纵横比取决于显示它的 window 的比例。
我可以在调用 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()
@版主:请加标签'tikzDevice'.
帮助页面 ?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)