【问题标题】:Assigning to list and plotting don't work in loop分配给列表和绘图在循环中不起作用
【发布时间】:2021-01-21 12:04:07
【问题描述】:

假设我有以下功能:

library(ggplot2)
library(patchwork)
subplots <- function(data) {
  lst <- list()
  # Assigning first and second variable to the list
  for (i in 1:2) {
    lst[[i]] <- ggplot() +
      aes(x = 1:length(data[, i]), y = data[, i]) +
      geom_line()
  }
  # Plotting variables stored in the list 
  wrap_plots(lst)
}

此代码的主要目的是获取数据框并并排绘制第一个和第二个变量的图。但是,如果我在相同的数据上运行此代码:

sed.seed(42)
vec_1 <- rnorm(100)
vec_2 <- runif(100)
df <- data.frame(vec_1, vec_2)
subplots(df) 

我获得了第二个变量图的两倍,而不是第一个和第二个。

你知道如何修复吗?我是否分配错误列表?

【问题讨论】:

    标签: r list ggplot2 patchwork


    【解决方案1】:

    您的列表分配很好,但您的 ggplot() 调用语法不正确。

    试试:

    subplots <- function(data) {
      lst <- list()
      # Assigning first and second variable to the list
      for (i in 1:2) {
        lst[[i]] <- ggplot(data.frame(x = 1:length(data[, i]), y = data[, i]), aes(x = x, y = y)) +
          geom_line()
      }
      # Plotting variables stored in the list 
      wrap_plots(lst)
    }
    

    【讨论】:

      猜你喜欢
      • 2021-01-14
      • 1970-01-01
      • 1970-01-01
      • 2015-05-17
      • 1970-01-01
      • 1970-01-01
      • 2014-05-09
      • 2017-11-18
      • 2022-01-14
      相关资源
      最近更新 更多