我有一个分类轴,我想在该轴上直观地分隔该分类变量中的组。我不想刻面,因为它占用太多空间并且在视觉上不那么干净。
这是我想要的视觉示例,其中涉及一些乏味的黑客攻击(将 alpha 设置为 0 用于间距的非数据条目)。
library(ggplot2)
dd <- data.frame(x=factor(c(1,-1,2:10),levels=c(1,-1,2:10)), y=c(1,2,2:10), hidden=as.factor(c(0,1,rep(0,9))))
ggplot(data=dd,aes(x=x,y=y,alpha=hidden)) +
geom_point() + scale_alpha_manual(values=c("1"=0,"0"=1)) +
scale_x_discrete(breaks=c(1:10))
我希望能够使用以下数据结构(变量“groups”决定间距出现的位置):
dd2 <- data.frame(x=factor(1:10,), y=c(1:10), groups=c("A",rep("B",9)))
最佳答案
您可以通过 scale_x_discrete
的 breaks
和 limits
参数获得您正在寻找的结果。将 breaks
设置为 x 轴上的因子水平,并将 limits
设置为您想要/需要的带间隔物的因子水平。
这是一个例子:
library(ggplot2)
dd <- data.frame(x = factor(letters[1:10]), y = 1:10)
ggplot(dd) +
aes(x = x, y = y) +
geom_point() +
scale_x_discrete(breaks = levels(dd$x),
limits = c(levels(dd$x)[1], "skip", levels(dd$x)[-1]))
关于r - 分类变量的离散轴间距,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44141993/