簡體   English   中英

在R中創建輔助y軸

[英]create a secondary y-axis in R

我有一個關於在R中創建輔助y軸的問題。這是一個示例數據集

#generate some artifical data

per_cur <- runif(1171, 0.1, 7.62)
obs<-runif(1171,100,1000)

#create a density histogram of per_cur 

par(mfrow=c(2,1))
op <- par(mar = c(5,4,4,4) + 0.5)
hist(per_cur, prob=TRUE, border="white",main=NULL,las=1,cex.axis=0.8,ann = FALSE)
lines(density(per_cur), col="blue",lwd=2)

#add obs with a secondary y-axis

par(new = TRUE)
plot(per_cur,obs, cex=.5, pch=16, col=adjustcolor("black",alpha=0.2), axes = FALSE, ylab="Density")
axis(4,cex.axis=0.5)

它產生一個圖,告訴我per_cur的分布,並通過輔助y軸顯示我在per_curobs之間的關系。 但是,當我運行以下代碼,唯一的不同是我使用ylim=c(0,0.3)設置了主要y軸的限制時,您會看到該圖完全改變了。 它給人的印象是,在兩個圖中, obspre_cur之間的關系是不同的(與第二個圖相比,第一個圖中的曲線下有更多的obs點)。

op <- par(mar = c(5,4,4,4) + 0.5)
hist(per_cur, prob=TRUE,ylim=c(0,0.3), border="white",main=NULL,las=1,cex.axis=0.8,ann = FALSE)
lines(density(per_cur), col="blue",lwd=2)
par(new = TRUE)
plot(per_cur,obs, cex=.5, pch=16, col=adjustcolor("black",alpha=0.2), axes = FALSE, ylab="Density")
axis(4,cex.axis=0.5)

我想問的是,在我調整主要y軸限制時,我的次要y軸是否也有調整的方法,以便在兩個圖中的曲線下都具有相同數量的obs點。 希望這很清楚。 在此處輸入圖片說明

這可以通過在每個圖上操縱ylim來實現。 例如:

#generate some artifical data

per_cur <- runif(1171, 0.1, 7.62)
obs<-runif(1171,100,1000)

#create a density histogram of per_cur 


# use these variables to set the limits on all plots
y1max = max(density(per_cur)$y)
y2max = max(obs)



par(mfrow=c(2,1))
op <- par(mar = c(5,4,4,4) + 0.5)
hist(per_cur, prob=TRUE, ylim = c(0, y1max), border="white",main=NULL,las=1,cex.axis=0.8,ann = FALSE)
lines(density(per_cur), col="blue",lwd=2)

#add obs with a secondary y-axis

par(new = TRUE)
plot(per_cur,obs, cex=.5, ylim = c(0, y2max), pch=16, col=adjustcolor("black",alpha=0.2), axes = FALSE, ylab="Density")
axis(4,cex.axis=0.5)

然后,按相同因子縮放每個軸:

# used to scale the axes
factor <- 2

op <- par(mar = c(5,4,4,4) + 0.5)
hist(per_cur, prob=TRUE, ylim = c(0, y1max * factor), border="white",main=NULL,las=1,cex.axis=0.8,ann = FALSE)
lines(density(per_cur), col="blue",lwd=2)
par(new = TRUE)
plot(per_cur,obs, cex=.5, ylim = c(0, y2max * factor),pch=16, col=adjustcolor("black",alpha=0.2), axes = FALSE, ylab="Density")
axis(4,cex.axis=0.5)

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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