簡體   English   中英

從數據幀列表中創建多個圖

[英]Making multiple plots from a list of data frames

我有一個名為“proc.r1”的21個不同數據框的列表。

我正在嘗試制作21個圖表,每個圖表使用列表中每個數據框的數據。

我在下面做的只適用於列表中的第一個數據框。 我為“plotdf1”寫的ggplot是我需要從每個數據幀生成的圖。 所以我需要21個看起來相同的“plotdf1”,除了每​​個都顯示來自不同數據幀的數據。

    #making the first data frame in the "proc.r1" list as a separate data frame
    df1 <- as.data.frame(proc.r1 [[1]])
    #making all the NA values displayed as 0
    df1[is.na(df1)] <- 0
    #rounding off the "norm.n" column, which I'll use as a label in the plot, to just 1 decimal point
    df1 [,42] <-  round(df1[,42],1)
    plotdf1 <- ggplot(df1)+geom_rect(aes(xmin=0,xmax=5,ymin=0,ymax=5))+facet_grid(row~col)+geom_text(aes(x=2.5,y=2.5,label=norm.n,colour="white"))

有沒有辦法可以循環這個,這樣我就可以生成21個圖形? 我真的不想制作“df1”,“df2”,df3“等等,直到”df21“然后將所有名稱復制到那幾行函數中並且必須做”plotdf1“,”plotdf2“,”plotdf3“ “等等

如果這個問題令人困惑,請告訴我。

提前致謝!

它相對簡單:

for(i in 1:length(proc.r1)
{
    df1 = as.data.frame(proc.r1[[i]])
    df1[is.na(df1)] <- 0
    df1[,42] <-  round(df1[,42],1)
    plotdf1 <- ggplot(df1)+geom_rect(aes(xmin=0,xmax=5,ymin=0,ymax=5))+
             facet_grid(row~col)+geom_text(aes(x=2.5,y=2.5,label=norm.n,colour="white"))
    print(plotdf1)
}

因為你有一個列表,所以也可以使用lapply ,但我更喜歡在這里使用for循環,因為你沒有返回任何東西。

暫無
暫無

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

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