【问题标题】:Function two plots in a 1*2 array [duplicate]在一个 1 * 2 数组中运行两个图 [重复]
【发布时间】:2020-11-22 07:49:49
【问题描述】:

我想要一个函数并排返回 2 个图表:

GraficosKMeans <- function(dados){ 
  g1 <- ggplot(dados, aes(x = cluster, y = ValorMedio))+
    geom_col()

  g2 <- ggplot(dados, aes(x = cluster, y = FrequenciaMedia))+
    geom_col()
  
  par(mfrow=c(1,2))
  # also tried layout(matrix(c(1,2), 1, 2))

  return(list(g1, g2))
 # also tried g1
 # also tried g2


}

调用这个函数:

GraficosKMeans(dados)

正在单独返回图表。为什么绘图区域没有设置成 1*2 的数组?

【问题讨论】:

  • dados 在哪里?请dput(dados) 并添加到问题中。
  • 谢谢,我刚刚编辑了我上面的问题
  • dados 是列表还是数据框?您添加的输出看起来不完整。
  • 这是一个数据框
  • 所以请再次粘贴dput(),因为如果我完成,我会得到一个列表。

标签: r ggplot2


【解决方案1】:

使用patchwork试试这个解决方案:

library(patchwork)
library(tidyverse)
#Code
GraficosKMeans <- function(dados){ 
  g1 <- ggplot(dados, aes(x = cluster, y = ValorMedio))+
    geom_col()
  
  g2 <- ggplot(dados, aes(x = cluster, y = FrequenciaMedia))+
    geom_col()
  
  #Compose plot
  g3 <- g1|g2
  
  return(g3)
}

GraficosKMeans(dados)

【讨论】:

    猜你喜欢
    • 2021-05-19
    • 1970-01-01
    • 2019-08-04
    • 1970-01-01
    • 1970-01-01
    • 2011-05-14
    • 2020-06-25
    • 1970-01-01
    • 2016-09-27
    相关资源
    最近更新 更多