Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么coord#u equal不';它不能按应有的方式工作吗?_R_Ggplot2 - Fatal编程技术网

为什么coord#u equal不';它不能按应有的方式工作吗?

为什么coord#u equal不';它不能按应有的方式工作吗?,r,ggplot2,R,Ggplot2,根据ggplot2上的说明,以下命令应给出x和y的相等纵横比(1:1) qplot(mpg, wt, data = mtcars) + coord_equal(ratio = 1) 然而,当我键入它时,我看到了这一点。 有人知道有什么问题吗 编辑: 但是,如果没有+coord_equal(),我可以获得1:1的纵横比。然而,只要我在右边添加图例,1:1的特性就会改变。提供的建议过于繁琐,无法达到预期效果。根据建议,我已经向github/ggplot2提交了一张罚单 不妨把我的评论变成一个答

根据ggplot2上的说明,以下命令应给出x和y的相等纵横比(1:1)

qplot(mpg, wt, data = mtcars) + coord_equal(ratio = 1) 
然而,当我键入它时,我看到了这一点。

有人知道有什么问题吗

编辑:


但是,如果没有
+coord_equal()
,我可以获得1:1的纵横比。然而,只要我在右边添加图例,1:1的特性就会改变。提供的建议过于繁琐,无法达到预期效果。根据建议,我已经向github/ggplot2提交了一张罚单

不妨把我的评论变成一个答案


您的
坐标相等(比率=1)
所做的是确保两个轴上的长度相等表示相同的单位变化。因此,两个轴的1cm=5个单位(例如,转换率可能不正确,但想法相同)。因为x轴的变化更大,所以它会像那样扭曲。如果希望y轴更加伸展,可以将ylim参数添加到
coord_equal

要获得类似于上的绘图,必须手动更改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)
库(ggplot2)

在github/ggplot2票据归档后,r_wt。温斯顿帮我找到了一个简洁的解决方案:

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

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

您的
坐标相等(比率=1)
所做的是确保两个轴上的长度相等表示相同的单位变化。因此,两个轴的1cm=5个单位。因为x轴的变化更大,所以它会像那样扭曲。而且1cm=5的单位不是文字。我不知道你的图表上一厘米有多少个单位,但我知道相同的长度代表x轴和y轴上相同的单位数。@Oliver,你的问题完全正确。ggplot2的行为与官方页面上描述的不同。about
coord_equal
上的绘图显示了一个图形,其中如果
ratio=1
,两个轴的相对范围是相同的@Sven我同意这个问题是合理的,但我认为应该指出实际行为是什么。@Oliver我建议您在。这样hadley就可以解决这个问题。我可以手动计算y/x的相对比值来调整纵横比。然而,问题是,为什么相同的数据集、相同的命令、相同的库版本如果我没有弄错的话,参考页面会显示一个完美的正方形。。。与我的不同。你确定库的版本实际上是相同的吗?ggplot最近发展迅速<代码>新闻(grepl(“coord_equal”,Text),package=“ggplot2”)
没有显示任何内容,但可能是无意中发生了更改…您仍然应该使用
coord_equal(ratio=1,ylim=ylim)
。否则你就不会做同样的事情了。例如,在您发布的图像中,x比例和y比例不完全匹配(y方向上的5个单位在物理图形上比x方向上的5个单位稍长)。