簡體   English   中英

R如何使用plotrix包分別在兩軸坐標圖中為兩組點添加回歸線

[英]R how to respectively add regression lines for two groups of points in two-y-axis plot using the plotrix package

我已經創建了一個兩軸坐標圖,以使用plotrix包顯示兩組點,下一步是分別為兩組點添加回歸線。 但是我不知道如何處理這種情況。 有什么建議么? 先感謝您!

創建兩軸坐標圖的示例代碼:

library(plotrix)

xval1 <- seq.Date(as.Date("2017-01-02"),
                  as.Date("2017-01-10"), by="day")
xval2 <- seq.Date(as.Date("2017-01-01"),
                  as.Date("2017-01-15"), by="day")
going_up <- seq(3,7,by=0.5)+rnorm(9)
going_down <- rev(60:74)+rnorm(15)
twoord.plot(2:10, going_up,1:15, going_down, xlab="Sequence", type = 'p',
            ylab = "Ascending values",rylab="Descending values",lcol=4)

這是一個機器人技巧,因為twoord.plot的幫助表明該繪圖的任何進一步添加都將相對於左縱坐標進行繪圖:

請注意,可以使用點或線將更多值添加到圖中,但請記住,這些值將相對於左坐標繪制。

但是我認為可以通過一些擴展來實現。 首先讓我們將您的數據轉換為數據框,以便我們進行回歸分析:

df1 <- data.frame(y = going_up, x = 2:10)
res1 <- lm(y ~ x, df1) #fit
pred1 <- predict(res1, df1) #generate point for plotting

第二個:

df2 <- data.frame(y = going_down, x = 1:15)
res2 <- lm(y ~ x, df2)
pred2 <- predict(res2, df2)

現在,由於pred2的規模與pred1的規模完全不同,我們需要將其縮放到pred1的范圍,因此可以使用從scales rescale 我填寫定義兩個縮放范圍:

pred2 <- scales::rescale(pred2, to = c(2, 8), from = c(58, 76))

作為參數,我將使用這些范圍也rylimlylimtwoord.plot

twoord.plot(2:10, going_up, 1:15, going_down, xlab = "Sequence", type = 'p',
            ylab = "Ascending values", rylab = "Descending values", lcol = 4, rylim = c(58, 76), lylim = c(2, 8))
lines(2:10, pred1, col = "blue")
lines(1:15, pred2, col = "red")

在此處輸入圖片說明

檢查它是否類似於我們繪制pred2時的樣子:

pred2 <- predict(res2, df2)
plot(1:15, going_down)
lines(1:15, pred2)

在此處輸入圖片說明

暫無
暫無

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

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