默认情况下,每个绘图都ggplot适合其设备.
这并不总是令人满意的.例如,可能需要将瓷砖制成geom_tile正方形.更改设备或更改x/y轴上的元素数量后,图块不再是正方形.
是否可以为绘图设置硬比例或大小,并使绘图适合其设备的窗口(或使设备的宽度和高度与绘图的宽度和高度成比例)?
Mar*_*yne 14
更干净的方法是使用theme(aspect.ratio)参数,例如
library(ggplot2)
d <- data.frame(x=rnorm(100),y=rnorm(100)*1000)
ggplot(d,aes(x,y))+
geom_point() +
theme(aspect.ratio=1/10) #Long and skinny
Run Code Online (Sandbox Code Playgroud)
coord_fixed()设置 x/y 坐标的比率,这并不总是相同的(例如,在这种情况下,x 和 y 的单位非常不同。
您可以使用coord_fixed()指定绘图的纵横比.
> library(ggplot2)
> df <- data.frame(
+ x = runif(100, 0, 5),
+ y = runif(100, 0, 5))
Run Code Online (Sandbox Code Playgroud)
如果我们继续绘制这些数据,那么我们得到一个符合输出设备尺寸的图.
> ggplot(df, aes(x=x, y=y)) + geom_point()
Run Code Online (Sandbox Code Playgroud)
但是,如果我们使用coord_fixed(),那么我们得到一个具有固定宽高比的图(默认情况下,x轴和y轴的长度相同).绘图的大小将由输出设备的最短尺寸确定.
> ggplot(df, aes(x=x, y=y)) + geom_point() + coord_fixed()
Run Code Online (Sandbox Code Playgroud)
最后,我们可以通过指定coord_fixed()的参数来调整固定宽高比,其中参数是y轴长度与x轴长度的比率.因此,为了获得两倍于宽度的情节,我们将使用:
> ggplot(df, aes(x=x, y=y)) + geom_point() + coord_fixed(2)
Run Code Online (Sandbox Code Playgroud)