根据ggplot2上的reference page,以下命令应该给出x和y的相等宽高比(1:1)。
qplot(mpg, wt, data = mtcars) + coord_equal(ratio = 1)
但是,当我输入它时,我看到了这一点。
有谁知道这是什么问题?
编辑:
但是,如果没有+coord_equal()
,我可以获得1:1的宽高比。但是,只要我在右侧添加图例,1:1方面就会发生变化。提供的建议过于繁琐,无法达到预期效果。正如所建议的那样,我已经向github / ggplot2提交了一张票。
答案 0 :(得分:8)
不妨将我的评论转化为答案。
coord_equal(ratio = 1)
所做的是确保两个轴上相等的长度代表相同的单位变化。所以两个轴的1cm = 5个单位(例如 - 转换率可能不正确,但想法是相同的)。由于x轴变化较大,因此会像这样碾压。如果希望y轴更加拉伸,可以将ylim参数添加到coord_equal
。
答案 1 :(得分:4)
github / ggplot2票据归档后。温斯顿帮我找到了一个简洁的解决方案:
qplot(mpg,wt,data=mtcars, shape="carb") + theme(aspect.ratio=1)
此外,ggplot2 0.8到0.9之间似乎存在一些行为变化,原始文档可能已过时。
答案 2 :(得分:2)
要获得与reference page上的图类似的图,必须手动更改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)