[英]Plotting multiple conditioned histograms on the same page in R
所以我試圖在一頁中繪制多個條件直方圖。 我有三個數字預測變量,AFE、ZCR 和 ACC,它們需要以 0 或 1 類為條件。
當我為單個變量執行此操作時:
histogram(myData.toplot$Class ~ myData.toplot$AFE | myData.toplot$Class)
它工作正常。 現在我想把他們三個都放在同一個情節中。 我試過這個:
x = histogram(myData.toplot$Class ~ myData.toplot$AFE | myData.toplot$Class)
y = histogram(myData.toplot$Class ~ myData.toplot$ZCR | myData.toplot$Class)
z = histogram(myData.toplot$Class ~ myData.toplot$ACC | myData.toplot$Class)
print(x, position=c(0, 0, 1, .35), more=TRUE)
print(y, position=c(0, .3, 1, .65), more=TRUE)
print(z, position=c(0, .6, 1, .95))
這行得通,但是,隨着預測變量數量的增加,我不想指定確切的位置 c。 所以相反,我嘗試了布局功能:
histogram( myData.toplot$Class ~ myData.toplot$AFE +myData.toplot$ZCR +myData.toplot$ACC | myData.toplot$Class ,layout=c(1,3),data = myData.toplot)
然而,這是非常不令人滿意的。 它不知道如何正確地調節類。 如何使用格子包在一頁中繪制三個條件直方圖面板?
還有另一種方法來做直方圖:
set.seed(42)
p1 <- hist(rnorm(500,4)) # centered at 4
p2 <- hist(rnorm(500,6)) # centered at 6
plot( p1, col=rgb(0,0,1,1/4), xlim=c(0,10)) # first histogram
plot( p2, col=rgb(1,0,0,1/4), xlim=c(0,10), add=T) # second
但是,當我添加:
par(mfrow=c(3,1)) ##this is what I added
set.seed(42)
p1 <- hist(rnorm(500,4)) # centered at 4
p2 <- hist(rnorm(500,6)) # centered at 6
plot( p1, col=rgb(0,0,1,1/4), xlim=c(0,10)) # first histogram
plot( p2, col=rgb(1,0,0,1/4), xlim=c(0,10), add=T) # second
set.seed(41)
p11 <- hist(rnorm(500,4)) # centered at 4
p21 <- hist(rnorm(500,6)) # centered at 6
plot( p11, col=rgb(0,0,1,1/4), xlim=c(0,10)) # first histogram
plot( p21, col=rgb(1,0,0,1/4), xlim=c(0,10), add=T) # second
set.seed(40)
p12 <- hist(rnorm(500,4)) # centered at 4
p22 <- hist(rnorm(500,6)) # centered at 6
plot( p12, col=rgb(0,0,1,1/4), xlim=c(0,10)) # first histogram
plot( p22, col=rgb(1,0,0,1/4), xlim=c(0,10), add=T) # second
我得到兩頁,一個是 p1、p2 以及 p1 和 p2 的組合,另一頁是 p11、p12 以及 p11 和 p12 的組合...等我想使用 par() 命令來簡單地放置三排組合。 我怎樣才能做到這一點?
問題是由於hist
創建了一個情節。 使用參數plot = FALSE
它將起作用。
par(mfrow=c(3,1)) ##this is what I added
set.seed(42)
p1 <- hist(rnorm(500,4), plot = FALSE) # centered at 4
p2 <- hist(rnorm(500,6), plot = FALSE) # centered at 6
plot( p1, col=rgb(0,0,1,1/4), xlim=c(0,10)) # first histogram
plot( p2, col=rgb(1,0,0,1/4), xlim=c(0,10), add=T) # second
set.seed(41)
p11 <- hist(rnorm(500,4), plot = FALSE) # centered at 4
p21 <- hist(rnorm(500,6), plot = FALSE) # centered at 6
plot( p11, col=rgb(0,0,1,1/4), xlim=c(0,10)) # first histogram
plot( p21, col=rgb(1,0,0,1/4), xlim=c(0,10), add=T) # second
set.seed(40)
p12 <- hist(rnorm(500,4), plot = FALSE) # centered at 4
p22 <- hist(rnorm(500,6), plot = FALSE) # centered at 6
plot( p12, col=rgb(0,0,1,1/4), xlim=c(0,10)) # first histogram
plot( p22, col=rgb(1,0,0,1/4), xlim=c(0,10), add=T) # second
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.