我有多個相同格式的資料框,我想用ggplot在同一個圖形中創建多條曲線。每個資料框都有一個年份的資料,從1956年到2019年。例如:
Year1956 <- data. frame(prob=c(5。 10。 20, 30。 100)。 Qmcs=c(1000。 500。 50, 10。 5))
Year1957 <-資料。 frame(prob=c(1。 3。 25, 35。 100)。 Qmcs=c(800。 600。 100, 50。 30))
可以手動將這些多個物件繪制在同一個圖表中,其中......將是1958年到2018年
ggplot()
geom_line(data=Year1956, aes(x=prob, y=Qmcs))
geom_line(data=Year1957。 aes(x=prob, y=Qmcs))
...
geom_line(data=Year2019。 aes(x=prob, y=Qmcs))
由于有許多資料框架,是否有辦法在一個回圈中完成這個作業?預先謝謝你。
uj5u.com熱心網友回復:
我的答案不是展示如何在一個資料框架的串列中回圈生成單獨的geom_line,而是展示如何結合類似結構的資料框架并在一個單一的geom_line中完成它。
讓我們假設我們有一系列模式為"Year" number的 data.frame。
library(ggplot2)
Year1956 <-資料。 frame(prob=c(5。 10。 20, 30。 100)。 Qmcs=c(1000。 500。 50, 10。 5))
Year1957 <-資料。 frame(prob=c(1。 3。 25, 35。 100)。 Qmcs=c(800。 600。 100, 50。 30))
我們可以通過在這些年中回圈并使用get()函式,系統地收集所有滿足該模式的data.frame。
years <- c(1956。 1957)
mylist < - lapply(setNames(nm =年)。 function(i) {
get(paste0("Year", i), mode = "list")
})
最后,我們可以將所有這些data.frame組合在一起,并通過使用idcol引數在data.table::rbindlist()中跟蹤我們有哪一年。然后,繪制資料將很簡單。
df <- data. table:: rbindlist(mylist,idcol = "year")
df$year <- as. numeric(df$year)。
ggplot(df, aes(prob, Qmcs, 組=年))
geom_line()

創建于2021-09-12,由reprex包(v2.0.1)
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/309989.html
標籤:
