R语言如何批量为大型数据集各列生成并保存条形图
批量生成频率分布条形图方案
不需要逐列手动修改代码,直接通过循环遍历数据集所有列即可批量导出图片,120余列的绘图任务数秒就能完成。
实现代码
# 预先定义通用固定参数 agreement_labels <- as.character(0:11) bar_fill <- "#69b3a2" # 遍历频率表的所有列逐列绘图 for (current_col in names(freq)) { # 自动生成对应列的图片保存文件名 png(file = paste0(current_col, "_freq_plot.png")) barplot( height = freq[[current_col]], main = paste0("Frequency distribution ", current_col), xlab = "Degree of agreement", ylab = "Absolute frequency", names.arg = agreement_labels, col = bar_fill ) dev.off() }
注意事项
- 取列时必须用双中括号
freq[[current_col]],不能写成freq$current_col:$操作符不支持动态变量名,会直接找名为current_col的列,导致运行报错 - 如果需要统一管理输出图片,可以先在当前工作目录下新建名为
freq_plots的文件夹,将文件名定义行修改为png(file = paste0("freq_plots/", current_col, "_freq_plot.png")),所有图片会自动保存到该文件夹内 - 如果存在不需要绘图的列,可以提前对
names(freq)取子集,仅传入需要绘图的列名到循环中即可 - 代码会自动匹配每一列的列名生成图表标题和文件名,适配Nu_开头的列名结构,无需手动调整映射关系
内容的提问来源于stack exchange,提问作者user19398227
相关产品推荐
相关产品推荐

