大家好,感谢您的考虑,
目标是在有很多 x 轴标签的情况下提供更多空间。请注意,我不关心标签本身是否在绘图上可视化(我已在下面的代码中排除了它们)。我想要改变的是,当典型的 geom_point 图中有大约 1000 个 x 轴标签和 1000 个数据点时,与第一个和最后几个 x 轴标签相关的最左边和最右边的点会被压碎绘图区域的边缘。我想填充一些空间,这样这些点就不会被挤压。
我想知道是否有办法改变scale-x-discrete(limits=c(xi,xii))
在这种情况下的命令类型xi
and xii
不是数字,而是字符串。两个例子可以让这一点(希望)清楚:
在第一种情况下,最右边的点和灰色阴影图的边缘之间的间距很大,这样该点就不会直接超出绘图区域的边缘。我想要这种效果,即最后一个点和绘图边缘之间有一些空间。
library(ggplot2)
set.seed(10)
lessVals = sample(1:100000, 10, replace = T)
lessIDs = as.character(sample(1:100000, 10, replace = T))
df.less <- data.frame(lessIDs, lessVals)
df.less$lessIDs <- as.character(df.less$lessIDs)
lessDat <- ggplot(df.less)
lessDat + geom_point(aes(lessIDs, lessVals)) + theme(axis.text.x =
element_blank())
然而,在以下情况下,有数千个 x 轴点,虽然可视化身份本身的标签无关紧要,但我想避免将最左边和最右边的点挤压到绘图区域的边缘。请注意,我不关心图中的点被挤压在一起 - 这是不可避免的,并且过度绘制可以通过 alpha 参数或其他东西来解决。我想要修复的是让绘图边缘上的点(最好是左侧和右侧)在水平面之间有一些缓冲区,其中左侧是 y 轴刻度,右侧是当前的刻度什么都没有(但可能是一个传奇)。
manyIDs = as.character(sample(1:100000, 1000, replace = T))
manyVals = sample(1:100000, 1000, replace = T)
df.many <- data.frame(manyIDs, manyVals)
df.many$manyIDs <- as.character(df.many$manyIDs)
manyDat <- ggplot(df.many)
manyDat + geom_point(aes(manyIDs, manyVals)) + theme(axis.text.x =
element_blank())
我很想知道到底可以做什么来为这些点的水平边缘提供一些缓冲。
感谢您分享您的天才。