簡體   English   中英

For循環創建多個ggplots

[英]For loop to create multiple ggplots

我有一個數據集,其中包含變量周、社會經濟地位(從 1 到 5)以及每周和每個社會經濟地位的獨特家庭數量。

現在,我想為每個社會經濟地位創建 5 個 ggplots,一個 plot。 每個 plot 應顯示幾周內針對一種社會經濟地位的獨特家庭數量的發展。

我考慮過使用 for 循環,但到目前為止我找不到有效的解決方案。 如果有人可以幫助我,那就太好了。

假設您的數據是df並且您有列weeksesnhh 如果您只想通過 ses 可視化 plot,可以使用facet_wrap() ,如下所示:

ggplot(df, aes(week, nhh)) + 
  geom_point() + 
  facet_wrap(~ses)

如果你想要一個 dataframe 的地塊,你可以這樣做:

plots <- df %>% 
  group_by(ses) %>%
  summarize(plot = list(ggplot(NULL, aes(week, nhh)) + geom_point()))

Output:

# A tibble: 5 x 2
    ses plot  
  <int> <list>
1     1 <gg>  
2     2 <gg>  
3     3 <gg>  
4     4 <gg>  
5     5 <gg>  

如果您想要 plot 對象的列表,您可以這樣做

plots <- lapply(unique(df$ses), \(s) ggplot(df %>% filter(ses == s), aes(week,nhh)) + geom_point())
names(plots = unique(df$ses))

暫無
暫無

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

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