2017-05-23 36 views
0

我有一个分类轴,我想在视觉上将该分类变量内的组分开。我不想分面,因为它占用太多空间,并且在视觉上不够干净。通过分类变量离散轴的间距

下面是我想要的一个视觉示例,涉及一些繁琐的黑客行为(对于用于间隔的非数据条目,将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)) 
使用

我希望能够无需破解一个额外的类别(这将不会与我试图绘制组数据/数量可行)创建这个情节下面的数据结构(其中变量“组”决定了间距发生):

dd2 <- data.frame(x=factor(1:10,), y=c(1:10), groups=c("A",rep("B",9))) 

enter image description here

回答

1

你可以得到你所通过breakslimits论点寻找到结果。将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])) 

enter image description here