2
我已经整理成子类别和子子类别的数据集,沿着嵌套的子弹点线:使用ggplot绘制整个数据集和子集
-1
-1a
-1ai
-1aii
-1b
-1bi
...等等。
我想用GGPLOT2作出点阵图表示随后数据1A为所有数据只,其次是数据1AI只,依此类推。
示例数据集:
x <- data.frame(cat=1, subA=letters[rep(1:5,each=10)],
subB=as.character(as.roman(rep(1:5,5,each=2))),value=rnorm(50,20,7))
> head(x)
cat subA subB value
1 1 a I 26.75573
2 1 a I 12.52218
3 1 a II 24.53499
4 1 a II 23.21012
5 1 a III 11.18173
6 1 a III 25.01914
我想用一个图表,看起来像这样结束:
我能够做大量的子集,使这一情节和用来制作大量冗余的衍生数据框架,但这似乎是做错了一个明显的例子。
x2 <- with(x,rbind(cbind(key="1",x),
cbind(key="1 a",x[paste(cat,subA) == "1 a",]),
cbind(key="1 a I",x[paste(cat,subA,subB) == "1 a I",]),
cbind(key="1 a II",x[paste(cat,subA,subB) == "1 a II",])))
library(ggplot2)
library(plyr)
ggplot(x2,aes(x=reorder(key,desc(key)),y=value))
+ geom_point(position=position_jitter(width=0.1,height=0))
+ coord_flip() + scale_x_discrete("Category")
有没有更好的方法来做到这一点?一个相关的问题是,如果每个值总是有相同数量的抖动添加到它,不管它是针对“1”还是“1 a”或“1 a II”绘制的,但在那里我甚至都没有确定从哪里开始。
我有点困惑你想要绘制什么...但你可以使用'interaction'来获得这个效果......'ggplot(x,aes(x = value,y = interaction(cat,subA,subB)))+ geom_point()'。 (也就是你在绘图步骤中调用的函数“desc”不适用于我们大多数人。它来自哪里? – Justin 2013-02-26 15:46:29
交互只似乎在其子子类别中绘制结果(即1.ai,1。 a.ii等)我想显示价值在整体分布以及子类别中的价值 – patabongo 2013-02-26 15:54:39
哎呦,这是来自plyr包,我会编辑这个问题 – patabongo 2013-02-26 15:55:43