首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用R本身或tikzDevice影响R的图()输出的纵横比?

如何用R本身或tikzDevice影响R的图()输出的纵横比?
EN

Stack Overflow用户
提问于 2015-11-19 14:36:21
回答 1查看 1.7K关注 0票数 1

我不确定这个问题是与R还是tikzDevice有关。

我只使用R和命令plot(1)。生成的图形表现为向量图形。它的纵横比取决于它所显示的窗口的比率。

我可以在调用plot()时设置高宽比显式

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

也许有一种用tikzDevice来解决高宽比的方法?我在tikzDevice中使用的脚本如下所示。

代码语言:javascript
复制
#!/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”标签。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-19 15:03:38

帮助页?plot包括用于控制高宽比的asp参数(更多细节在?plot.window页面上)。

我不知道tikz设备是否以不同的方式处理这个问题(因为绘图的高度和宽度在创建后可能会发生变化),但是开始的位置是这样的:

代码语言:javascript
复制
plot(1, asp=1)

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

编辑

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

代码语言:javascript
复制
theta <- seq(0,2*pi, length=200)
plot(cos(theta),sin(theta))
plot(cos(theta),sin(theta), asp=1)

对于默认情况下的常规R和Rstudio (至少在我的计算机上),这两个情节有明显的差别。我还没有用tikz装置试过这个。

您还可以尝试TeachingDemos包中的TeachingDemos函数(我从未在tikz设备上尝试过它,但在常规的R中,它作为另一种方式来设置高宽比):

代码语言:javascript
复制
library(TeachingDemos)
op <- squishplot(c(-1,1),c(-1,1), asp=1)
plot(cos(theta),sin(theta))
par(op)
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33806823

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档