如果我有一個data.frame包含我想要繪製的數據,在facet_wrap(或facet_grid)的不同圖中「分組」數據的最簡單方法是什麼)?ggplot2:根據某些標準在facet中組data.frame
爲了使一個具體的例子,如果數據幀是這樣的:
ID | P1 | P2 | P3 | P4 | P5
....(data)....
我想有P1,P2,P3在ID在所述第一面,P4在ID在第二和P5以上ID在第三。
如果我有一個data.frame包含我想要繪製的數據,在facet_wrap(或facet_grid)的不同圖中「分組」數據的最簡單方法是什麼)?ggplot2:根據某些標準在facet中組data.frame
爲了使一個具體的例子,如果數據幀是這樣的:
ID | P1 | P2 | P3 | P4 | P5
....(data)....
我想有P1,P2,P3在ID在所述第一面,P4在ID在第二和P5以上ID在第三。
我懷疑我做了一個完全模仿你的例子,但希望你能明白這一點。 ggplot2圖形的技巧是將您的數據轉換成長格式,格式爲melt()
。然後,您可以根據想要如何分組它們來創建一個facet
ing變量。這裏有一個例子:
library(ggplot2)
dat <- data.frame(ID = rnorm(10), P1 = rnorm(10), P2 = rnorm(10), P3 = rnorm(10), P4 = rnorm(10), P5 = rnorm(10))
dat.m <- melt(dat, id.vars = 1)
#Create faceting variable
dat.m <- transform(dat.m, facet = ifelse(variable %in% c("P1", "P2", "P3"), 1, ifelse(variable == "P4", 2,3)))
ggplot(dat.m, aes(ID, value)) + geom_point() + facet_wrap(~facet)
你基本上要求使用cyl
既是一個刻面和分組變量。
在這裏,我首先創建一個第二可變 - cyl_class
- 要用作刻面的變量,並使用cyl
繼續組:
library(ggplot2)
mpg$cyl_class <- cut(mpg$cyl,
breaks=c(3.5, 4.5, 5.5, 8.5),
labels=c("4", "5", "6-8"))
p <- qplot(cty, hwy, group=cyl, data = mpg)
p + facet_wrap(~ cyl_class) +
geom_point(aes(colour=factor(cyl))) +
scale_colour_discrete()
的顏色可以改進(爲了更好的對比度),這個例子很愚蠢,但一般的做法是合理的,而且很容易適應。