1

2つのqプロット(AとB)をpdfまたはpngとして保存しようとしています。両方のプロットで、X軸とY軸の単位は同じです(メートル単位の距離)。2つのプロットのXlimとYlimは異なります。PDFファイルを表示するとき、プロットAの1mの表現がプロットBの1mと等しくなるようにしたいと思います。

私の場合:

xlim.A=c(3,6)
ylim.A=c(-.2,1.5)
xlim.B=c(10,11)
ylim.B=c(0,4)
x <- seq(from=xlim.A[1],to=xlim.A[2],length.out=100)
y <- seq(from=ylim.A[1],to=ylim.A[2],length.out=100)
A <- data.frame(x=x,y=y)

x <- seq(from=xlim.B[1],to=xlim.B[2],length.out=100)
y <- seq(from=ylim.B[1],to=ylim.B[2],length.out=100)
B <- data.frame(x=x,y=y)    

require(ggplot2)

my.plot.A <- qplot(A$x,A$y,asp=(ylim.A[2]-ylim.A[1])/(xlim.A[2]-xlim.A[1]),xlab="Distance (m)",
ylab="Elevation (m)")
my.plot.B <- qplot(B$x,B$y,asp=(ylim.B[2]-ylim.B[1])/(xlim.B[2]-xlim.B[1]),xlab="Distance (m)",
ylab="Elevation (m)")
ggsave("plot_A.pdf",plot=my.plot.A,scale=1)
ggsave("plot_B.pdf",plot=my.plot.B,scale=1)

これにより、最初のファイルの1mに相当する距離は、2番目のファイルの1mに相当しません。どうすればそれらを等しくすることができますか?ありがとう

4

1 に答える 1

0

aspを使用すると、2つのグラフのスケールが異なるようになります。それらを印刷された形で一致させることは非常に困難です。

代わりに、より大きなグラフを使用して、必要に応じてトリミングすることで、正しい縮尺を確保できます。

xscale <- c(min(xlim.A[[1]], xlim.B[[1]]), max(xlim.A[[2]], xlim.B[[2]]))
yscale <- c(min(ylim.A[[1]], ylim.B[[1]]), max(ylim.A[[2]], ylim.B[[2]]))

sameScale <- coord_cartesian(xlim=xscale, ylim=yscale)

plotA <- qplot(A$x,A$y) + sameScale
plotB <- qplot(B$x,B$y) + sameScale
于 2012-11-26T03:21:12.283 に答える