如何控制ggplot的绘图区域比例而不是将它们安装到R中的设备?

Ant*_*nko 3 plot r ggplot2

默认情况下,每个绘图都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 的单位非常不同。


Dat*_*kie 8

您可以使用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)