【问题标题】:grid.arrange() output adding blank space and extra plot in R Markdowngrid.arrange() 输出在 R Markdown 中添加空格和额外绘图
【发布时间】:2021-06-07 15:47:32
【问题描述】:

我正在努力弄清楚如何在 R Markdown 中很好地绘制两个 transform()(dlookr 库)图。以下代码产生了这篇文章中包含的图片的输出。我想要最后一个情节(2x2),我想知道为什么其他两个情节也会出现。如何在 Markdown 中只打印最后一个?

# payment transformation
payment_log <- transform(my_data$payment, method = "log")
# income transformation
income_log <- transform(my_data$income, method = "log")

grid.arrange(
  plot(payment_log,typographic=FALSE),  # visual of transformation
  plot(income_log,typographic=FALSE),  # visual of transformation
  ncol=1)

【问题讨论】:

  • 生成这些图表的代码是什么?
  • @Stacker 我使用transform() 对一些倾斜的数据使用日志转换。 plot() 针对转换后的数据生成两个直方图,分别是转换之前和之后。我所有进行转换然后生成绘图的代码都在原始帖子中。

标签: r grid r-markdown markdown transform


【解决方案1】:

可以通过在as.grob 内将每个图包装在function 调用中,然后将这些变量传递给grid.arrange 来避免前两个图。

library(dlookr)
library(ggplotify)
my_data=data.frame(payment=c(1,2,2,3,3,3,4,4,4,4,5,5,5,5,5,6,6,6,6,6,6,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9),
                   income=c(1,2,2,3,3,3,4,4,4,4,5,5,5,5,5,6,6,6,6,6,6,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9))
payment_log=transform(my_data$payment, method="log")
income_log=transform(my_data$income, method="log")

x=as.grob(function() plot(payment_log))
y=as.grob(function() plot(income_log))
grid.arrange(grobs=list(x,y), ncol=1)

【讨论】:

  • 哇,这真是太棒了。太感谢了!如果你不介意解释,你能谈谈我们用这段代码做什么吗? x=as.grob(function() plot(payment_log))
  • 如果您执行?grid.arrange,您将看到三个命令,其中两个重要的命令是arrangeGrob 和grid.arrange。我认为 Grob 是情节对象的一些词。所以在代码中我们创建了一个调用plot的函数,所以如果我们不把它放在一个函数中,那么plot实际上并不会做一些奇怪的事情,然后我们将它包装在as.grob中。然后将这些变量传递给 grid.arrange 的 grobs 参数。
猜你喜欢
  • 2018-08-11
  • 2014-09-30
  • 2019-11-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-16
  • 1970-01-01
  • 1970-01-01
  • 2021-12-21
相关资源
最近更新 更多