簡體   English   中英

兩個具有相同X和Y軸的圖

[英]Two plots with same X and Y axis

顯示的圖表由以下R代碼生成。

png("test.png")
plot(data[,4],data[,3],type='l',col="green")
par(new=TRUE)
plot(data[,4],data[,2],type='l',col="red")
dev.off()

兩個圖的Y軸范圍不同,如圖所示,它被覆蓋。 有人可以幫助為這兩個圖設置相同的Y軸范圍。

在此輸入圖像描述

如果y標度在很大程度上重疊,那么您可以創建包含整個范圍的初始圖(不繪制任何內容)來定義軸,然后繪制線。

set.seed(5)
data <- data.frame(1:60, rnorm(60, 0.6, 0.1), rnorm(60, 0.65, 0.15), 
                   seq(2,120,by=2))

使用type='n'設置軸,但不繪制任何內容。 使用所有數據的范圍確保圖包含所有數據。

plot(range(data[,4]), range(c(data[,3],data[,2])), type='n')
lines(data[,4], data[,3], type='l', col='green')
lines(data[,4], data[,2], type='l', col='red')

在此輸入圖像描述

您可以使用此方法:

  1. 繪制第一個圖
  2. call par(new=TRUE)
  3. 在第一個圖上繪制第二個圖。 第二個圖不繪制默認軸(axes=FALSE)

如果第二個圖與第一個圖的y不同,則可以使用axis()函數繪制輔助y軸,在右側表示比例。

例如,您可以執行以下操作:

 data <- matrix(rnorm(4*100),ncol=4)
 par(mar=c(5, 6, 2, 4))
 plot(1:100,data[,3], lwd=3, col="green", ann=FALSE, las=2,type='l')
 mtext("I am at left", side=2, line=3.5)
 par(new=TRUE)
 plot(1:100,data[,2], ann=FALSE, axes=FALSE,col='red',type='l')
 mtext("I am at right)", side=4, line=2)
 title("Using par(new=TRUE) \n same X and different or not Y axis ")
 axis(4)

在此輸入圖像描述

暫無
暫無

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

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