7

根据 ggplot2 上的此参考页面,以下命令应给出 x 和 y 的相等纵横比 (1:1)。

qplot(mpg, wt, data = mtcars) + coord_equal(ratio = 1) 

但是,当我输入它时,我看到了这个。 在此处输入图像描述

有谁知道是什么问题?

编辑:

但是,如果没有+coord_equal(),我可以获得 1:1 的纵横比。但是,只要我在右侧添加图例,1:1 的比例就会改变。提供的建议太繁琐而无法达到预期的效果。正如建议的那样,我已经向 github/ggplot2 提交了一张票。

4

3 回答 3

9

不妨把我的评论变成答案。

coord_equal(ratio = 1)所做的是确保两个轴上的相同长度代表相同的单位变化。因此,两个轴的 1cm = 5 个单位(例如 - 转换率可能不正确,但想法是相同的)。由于 x 轴的可变性更大,它会像那样被挤压。coord_equal如果您希望 y 轴更加伸展,您可以添加一个 ylim 参数。

于 2012-09-16T02:13:54.800 回答
5

提交 github/ggplot2 票证后。Winston 帮我找到了一个简洁的解决方案:

qplot(mpg,wt,data=mtcars, shape="carb") + theme(aspect.ratio=1)

此外,ggplot2 0.8 到 0.9 之间似乎存在一些行为变化,原始文档可能已过时。

于 2012-09-19T18:46:02.127 回答
2

要获得类似于参考页面上的图,必须手动更改 y 轴的限制:

library(ggplot2)

r_wt <- range(with(mtcars, wt))
r_mpg <- range(with(mtcars, mpg))
cent <- mean(r_wt)
ylimits <- cent + c(-1, +1) * diff(r_mpg)/2

qplot(mpg, wt, data = mtcars) + coord_cartesian(ylim = ylimits)

在此处输入图像描述

于 2012-09-16T07:31:53.217 回答