gpt4 book ai didi

r - 如何将 coord_fixed 与 scale_x_continuous 一起使用而不丢失其中一个或另一个的功能

转载 作者:行者123 更新时间:2023-12-04 12:16:49 25 4
gpt4 key购买 nike

我正在尝试使用 scale_x_continuous()、scale_y_continuous() 和 coord_fixed() 以及 coord_cartesian() 绘制绘图。然而,一个似乎总是压倒另一个。

考虑数据框:

x<- as.vector(sample(250:500, 50))
y<- as.vector(sample(1:500, 50))
df<- as.data.frame(cbind(x,y))

我需要将 x 轴和 y 轴的比例设置为 1:1。这很容易像这样完成:

p <-ggplot() + geom_point(data = df, aes(x = x, y = y))

p <- p + scale_x_continuous(limits = c(0,500)) + scale_y_continuous(limits = c(0,500))
p <- p + coord_fixed()
p

现在我想删除绘图左侧的所有空白区域。对我来说合乎逻辑的步骤是使用 coord_cartesian() 来“放大”我的情节而不改变它,但它不起作用。

p <- p + coord_cartesian(xlim = c(250, 500), ylim = c(0,500)) 
p

这行代码确实放大了我,但现在 coord_fixed() 的效果消失了。 (当您更改图的边距并且轴间距的比率也会发生变化时,就会看到这一点)。

我已经多次尝试在所有这三个函数中设置限制,并删除和/或重新排序这些函数,它们似乎总是在某一点上相互抵消。即使在 coord_fixed() 中设置 xlim 和 ylim 本身也会阻止它工作。

p <-ggplot() + geom_point(data = df, aes(x= x, y = y))

p <- p + scale_x_continuous(limits = c(0,500)) + scale_y_continuous(limits = c(0,500))
p <- p + coord_fixed(ratio=1, xlim = c(250, 500), ylim = c(0,500))
p

如何将坐标轴之间的比率固定为 1:1,同时移除绘图左侧的空白区域?

谢谢!

最佳答案

您可以使用coord_fixed,并设置比率以匹配两个轴的界限之间的比率:

xlim = c(245, 505) 
ylim = c(-5,505)
p + coord_fixed(ratio = diff(xlim)/diff(ylim), xlim=xlim, ylim=ylim, expand=F)

enter image description here

关于r - 如何将 coord_fixed 与 scale_x_continuous 一起使用而不丢失其中一个或另一个的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49363136/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com