![](/img/trans.png)
[英]Making multiple plots from a list of data frames - with colors (ggplot2)
[英]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.