暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

R语言绘图|ggplot2循环绘图

日常分享的小懒猫 2023-04-18
1592
点击关注了解更多哦

本文主要介绍在R语言中如何利用for循环进行ggplot2的批量绘图。如下图所示:

1、数据准备

library(dplyr)
library(ggplot2)
library(patchwork)
# Souce:WeChat:日常分享的小懒猫
> states <- state.x77 %>% as.data.frame() %>% janitor::clean_names()
> head(states)
# population income illiteracy life_exp murder hs_grad frost   area
# Alabama          3615   3624        2.1    69.05   15.1    41.3    20  50708
# Alaska            365   6315        1.5    69.31   11.3    66.7   152 566432
# Arizona          2212   4530        1.8    70.55    7.8    58.1    15 113417
# Arkansas         2110   3378        1.9    70.66   10.1    39.9    65  51945
# California      21198   5114        1.1    71.71   10.3    62.6    20 156361
# Colorado         2541   4884        0.7    72.06    6.8    63.9   166 103766
> str(states)
# 'data.frame': 50 obs. of  8 variables:
#   $ population: num  3615 365 2212 2110 21198 ...
# $ income    : num  3624 6315 4530 3378 5114 ...
# $ illiteracy: num  2.1 1.5 1.8 1.9 1.1 0.7 1.1 0.9 1.3 2 ...
# $ life_exp  : num  69 69.3 70.5 70.7 71.7 ...
# $ murder    : num  15.1 11.3 7.8 10.1 10.3 6.8 3.1 6.2 10.7 13.9 ...
# $ hs_grad   : num  41.3 66.7 58.1 39.9 62.6 63.9 56 54.6 52.6 40.6 ...
# $ frost     : num  20 152 15 65 20 166 139 103 11 60 ...
# $ area      : num  50708 566432 113417 51945 156361 ...  

2、图形绘制

2.1 绘制密度图

以绘制8个变量的密度图分布为例。

> x_variable <- names(states)
> x_variable
# [1] "population" "income"     "illiteracy" "life_exp"   "murder"     "hs_grad"    "frost"      "area"    

plot_list <- list()
# Souce:WeChat:日常分享的小懒猫
for( i in x_variable){
  plot_list[[i]] <- ggplot(states, aes_string(x = i))  + 
    geom_density(fill = "lightblue") + 
    theme_classic(base_size = 15) + 
    theme(axis.text = element_text(colour = "black"))
}
wrap_plots(plot_list, ncol = 4) 

2.2 绘制散点图

murder为y轴变量,其余变量为x变量,绘制散点图并添加拟合曲线。

x_variable <- names(states %>% select(-murder))
x_variable
# [1] "population" "income"     "illiteracy" "life_exp"   "hs_grad"    "frost"      "area"  

plot_list <- list()
# Souce:WeChat:日常分享的小懒猫
for( i in x_variable){
  plot_list[[i]] <- ggplot(states, aes_string(y = "murder", x = i))  + 
    geom_point(size = 3, shape = 21, color = "red") + 
    geom_smooth(method = "lm") + 
    theme_classic(base_size = 15) + 
    theme(axis.text = element_text(colour = "black"))
}
wrap_plots(plot_list, ncol = 4) 

3、tips

在使用for循环进行ggplot2批量绘图时,需要用到的美学映射函数为aes_string() ,而非aes() 。二者的区别主要在于,aes_string() 函数引用变量时需要加引号,而aes() 函数引用变量时无须加入引号。此外,在拼图的过程中,可使用patchwork包中的wrap_plots() 函数。

4、其他

更多内容可关注微信公众号【日常分享的小懒猫】


如有帮助请多多点赞哦!


r语言 变量 states
文章转载自 日常分享的小懒猫,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

玻璃钢生产厂家吉林定制玻璃钢雕塑市场河南大型商场美陈哪里买广场不锈钢玻璃钢雕塑定做价格黄山佛像玻璃钢雕塑青海玻璃钢动物雕塑公司新郑城市玻璃钢雕塑玻璃钢浮雕雕塑工厂玻璃钢雕塑高端大气常见玻璃钢花盆设计厂家湛江农业迎丰收玻璃钢雕塑开封景观玻璃钢人物雕塑批发河南特色商场美陈批发价同江玻璃钢雕塑玻璃钢茶道雕塑无锡室内玻璃钢花盆河南玻璃钢浮雕抽象景观雕塑小品马鞍山欧式玻璃钢雕塑订做价格浙江 玻璃钢雕塑商场气球美陈讲解滑县玻璃钢雕塑设计香坊玻璃钢雕塑商场中庭美陈工厂辽宁张仲景玻璃钢雕塑武威玻璃钢植物雕塑安装正宗玻璃钢雕塑优选企业扬州火烈鸟玻璃钢雕塑定制通化玻璃钢雕塑多少钱池州户外玻璃钢雕塑门头玻璃钢雕塑造价上海季节性商场美陈批发价香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化