![](/img/trans.png)
[英]How can I plot two lines from two columns of Data frame and scale the y axis using ggplot package
[英]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))
作為參數,我將使用這些范圍也rylim
和lylim
在twoord.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.