簡體   English   中英

在 R 中的同一頁面上繪制多個條件直方圖

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM