我正在尝试使用scale_x_continuous(),scale_y_continuous()和coord_fixed()以及coord_cartesian()创建绘图。然而,似乎总是覆盖另一个(s)。
考虑数据框:
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()来&#34;缩放&#34;进入我的情节而不改变它,但它不起作用。
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,同时删除图表左侧的空白区域?
谢谢!