楼主: 琥珀川lz
4025 10

[问答] 用for循环批量画图 [推广有奖]

11
swufeyumeng 在职认证  发表于 2019-12-27 00:08:00
  1. library(tidyverse)
  2. df <- matrix(rnorm(100 * 16), 100, 16) %>% as.data.frame()
  3. colnames(df) <- paste0('v', 1:16)

  4. plot.hist <- function(v_x) {
  5.   p <- paste0(
  6.     'ggplot() + geom_histogram(aes(df$',
  7.     v_x,
  8.     '), binwidth = 0.2)'
  9.   )
  10.   eval(parse(text = p))
  11.   ggsave(paste0(v_x, '.png'), plot = last_plot())
  12. }

  13. setwd('C:/Users/swufe/Desktop/Plot')
  14. map(paste0('v', c(2:13, 16)), plot.hist)
复制代码


再提供一种思路。
1、df是100行16列由随机数构成的数据框,列向量的名称分别为v1, v2 ... v16
2、定义一个函数plot.hist(),如果传入字符参数'v4',则绘制df$v4的直方图,并保存在本地。
3、用map()函数绘制第2-13、第16列随机数的直方图并保存。

2019-12-27 00_06_59-Plot.png

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-25 04:45