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