[英]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_cur
和obs
之間的關系。 但是,當我運行以下代碼,唯一的不同是我使用ylim=c(0,0.3)
設置了主要y軸的限制時,您會看到該圖完全改變了。 它給人的印象是,在兩個圖中, obs
和pre_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.