我有一个正x和y值的数据框,我想在ggplot2
中作为散点图显示。这些值远离点(0,0)聚集,但我想在图中包含x = 0和y = 0线以显示总体幅度。我怎么能这样做?
set.seed(349)
d <- data.frame(x = runif(10, 1, 2), y = runif(10, 1, 2))
ggplot(d, aes(x,y)) + geom_point()
但我想要的是大致相当于此的东西,而不必指定限制的两端:
ggplot(d, aes(x=x, y=y)) + geom_point() +
scale_x_continuous(limits = c(0,2)) + scale_y_continuous(limits = c(0,2))
答案 0 :(得分:5)
一种选择是仅锚定x和y min,但保留max unspecified
ggplot(d, aes(x,y)) + geom_point() +
scale_x_continuous(limits = c(0,NA)) +
scale_y_continuous(limits = c(0,NA))
答案 1 :(得分:1)
此解决方案有点hacky,但它也适用于标准plot
。
d
是原始数据框,我们添加两个&#34;假&#34;数据点:
d2 = rbind(d,c(0,NA),c(NA,0))
该第一个额外数据点具有x坐标= 0和y坐标= NA。这意味着0将包含在xlim中,但不会显示该点(因为它没有y坐标)。
对于y限制,其他数据点的作用相同。
只需绘制d2
而不是d
,它就可以正常工作。
如果使用ggplot
而非plot
,则会收到有关缺失值的警告。将geom_point()
替换为geom_point(na.rm=T)
此解决方案的一个缺点(特别是对于plot
)是必须为任何其他“数据点”添加额外的值。参数,例如col=
,如果您为每个点指定不同的颜色。