点击关注了解更多精彩内容!!
![831884fc4fed2c793b7ffd3911cc58b4.png](https://i-blog.csdnimg.cn/blog_migrate/abd245e2ccec33129563d121d42e4f68.jpeg)
人生苦短,唯美图与爱不可辜负 – 老铁
对于数据分析的同学来说,一张美图包含着很多信息,也能侧面反映科研的艺术感。很多年以前,铁哥就是因为偶然看到一个很美丽的heatmap从而决定从统计学转向生物信息学这个方向。
本文铁哥会主要介绍R语言中优雅的可视化软件包“ggplot2” 之散点图可视化,并且会讲一些小故事帮助大家理解它的用法?。
在这之前,需要大家先安装并且加载两个软件包:tidyverse 和 ggplot2, 这两个软件包的作者还是大名鼎鼎的 Hadley Wickham, 那个改变了R的男人?。此处的R 代码如下(可以直接复制粘贴到Rstudio额):
![70f5663c7fcac57fab3daeb2e9bdc396.png](https://i-blog.csdnimg.cn/blog_migrate/e8ef6ad64727fe3a536aa2db6e2baf6c.png)
#安装tidyverse 和 ggplot2 package
install.packages("tidyverse")
library(tidyverse)
install.packages("ggplot2")
library(ggplot2)
![bf05d3f0b7fda0baf020e7a549de58e4.png](https://i-blog.csdnimg.cn/blog_migrate/f779594b3502bcf1c1e6b3c483a33a59.png)
代码在Rstudio中的输出结果如下:
![6475ccc8a8c8aa3bfd9d984e58313b40.png](https://i-blog.csdnimg.cn/blog_migrate/7bb30671c75056a2cc607a881c00be8c.jpeg)
dvdf
有了这两个软件包以后,我们就可以开始讲故事/学习R语言了?。为了让大家学有所得,本文仅仅讲如何用ggplot2画出散点图。为了帮助大家理解,铁哥又要聊聊身边的小伙伴了(考虑到单身朋友们的感受,我们尽量多讨论友情?)
今年的秋天来的早了点;
看着风中的几根秀发,
去年的秋裤又紧了半寸;
甜了爱情,醉了科研!
他们和铁哥一样特别关注一样东西。大家猜猜是什么?没错,就是体重,此处忍不住捏捏自己的小肚腩。本文涉及到十位小伙伴的体重和年龄信息(如有雷同、纯属巧合):
小云,50kg,25岁;小宏,60kg,28岁;小杭,55kg,26岁;小通,70kg,30岁;
小旭,75kg,30岁;小瑞,58kg,28岁;
小晨,72kg,28岁;小萌,58kg,26岁;
小磊,80kg,30岁;小明,77kg,29岁;
用R语言代码表示如下:![70f5663c7fcac57fab3daeb2e9bdc396.png](https://i-blog.csdnimg.cn/blog_migrate/e8ef6ad64727fe3a536aa2db6e2baf6c.png)
#定义每个个体的体重和年龄
Yun
Hong
Hang
Tong
Xu
Rui
Chen
Meng
Lei
Ming
![bf05d3f0b7fda0baf020e7a549de58e4.png](https://i-blog.csdnimg.cn/blog_migrate/f779594b3502bcf1c1e6b3c483a33a59.png)
![70f5663c7fcac57fab3daeb2e9bdc396.png](https://i-blog.csdnimg.cn/blog_migrate/e8ef6ad64727fe3a536aa2db6e2baf6c.png)
#按行合并为数据集
data % data.frame()
#定义数据集的列名字
colnames(data)
data
![bf05d3f0b7fda0baf020e7a549de58e4.png](https://i-blog.csdnimg.cn/blog_migrate/f779594b3502bcf1c1e6b3c483a33a59.png)
代码输出结果如下:
![70f5663c7fcac57fab3daeb2e9bdc396.png](https://i-blog.csdnimg.cn/blog_migrate/e8ef6ad64727fe3a536aa2db6e2baf6c.png)
#ggplot画出散点图
ggplot(data = data) +
geom_point(mapping = aes(x = Age, y = Weight))
![bf05d3f0b7fda0baf020e7a549de58e4.png](https://i-blog.csdnimg.cn/blog_migrate/f779594b3502bcf1c1e6b3c483a33a59.png)
输出结果如下:
这样的话,散点图就画好了,概括一下ggplot的使用模版:
![70f5663c7fcac57fab3daeb2e9bdc396.png](https://i-blog.csdnimg.cn/blog_migrate/e8ef6ad64727fe3a536aa2db6e2baf6c.png)
#定义新的标签
data$Label
c("硕士生", "博士生",
"硕士生", "博士后",
"博士后", "博士生",
"博士生", "硕士生",
"博士后", "博士后")
![bf05d3f0b7fda0baf020e7a549de58e4.png](https://i-blog.csdnimg.cn/blog_migrate/f779594b3502bcf1c1e6b3c483a33a59.png)
![70f5663c7fcac57fab3daeb2e9bdc396.png](https://i-blog.csdnimg.cn/blog_migrate/e8ef6ad64727fe3a536aa2db6e2baf6c.png)
#我们使用不同的颜色表示不同的类别
# element_text(family = 'Kai')使得图例可以显示中文
ggplot(data = data) +
geom_point(mapping = aes(x = Age, y = Weight, color = Label))+
theme(text = element_text(family = 'Kai'))
![bf05d3f0b7fda0baf020e7a549de58e4.png](https://i-blog.csdnimg.cn/blog_migrate/f779594b3502bcf1c1e6b3c483a33a59.png)
这个图就好看多了(此处跑个题),我想起了电影《爱乐之城》里面的主题曲:
City of stars,
Are you shining just for me?
City of stars,
You never shined so brightly.
有的时候,散点图可能还不够,我们还想知道它们的趋势,这里我们还对散点图进行了一个平滑处理,R代码如下:![70f5663c7fcac57fab3daeb2e9bdc396.png](https://i-blog.csdnimg.cn/blog_migrate/e8ef6ad64727fe3a536aa2db6e2baf6c.png)
#对散点图进行平滑处理
ggplot(data = data) +
geom_point(mapping = aes(x = Age, y = Weight, color = Label))+
geom_smooth(mapping = aes(x = Age, y = Weight))+
theme(text = element_text(family = 'Kai'))
![bf05d3f0b7fda0baf020e7a549de58e4.png](https://i-blog.csdnimg.cn/blog_migrate/f779594b3502bcf1c1e6b3c483a33a59.png)
输出图像如下:
进一步优化该图像,铁哥想要去掉背景中的网格线以及曲线的置信区间,R代码如下:
![70f5663c7fcac57fab3daeb2e9bdc396.png](https://i-blog.csdnimg.cn/blog_migrate/e8ef6ad64727fe3a536aa2db6e2baf6c.png)
#不显示置信区间和网格线
ggplot(data = data) +
geom_point(mapping = aes(x = Age, y = Weight, color = Label))+
geom_smooth(mapping = aes(x = Age, y = Weight), se = FALSE)+
theme_classic() +
theme(text = element_text(family = 'Kai'))
![bf05d3f0b7fda0baf020e7a549de58e4.png](https://i-blog.csdnimg.cn/blog_migrate/f779594b3502bcf1c1e6b3c483a33a59.png)
输出图像如下:
![0a0378a7071b0d8b8efb558d06593c9b.png](https://i-blog.csdnimg.cn/blog_migrate/4d8ad627c5e1b32997bcb4863de4ae56.png)
衣带渐宽终不悔,为伊修得人渐肥。
祝世上老博士早日毕业,
愿天下有情人终成眷属!
——铁哥
![05501f7b7024b831a2860e70c739ae88.png](https://i-blog.csdnimg.cn/blog_migrate/60e4b5e234ea006aedae0259d55043e4.png)
欢迎关注铁哥公众号,助力科研道路上永不掉发,杜绝长膘,当然还有脍炙人口的铁哥小故事陪伴大家哦!
![57c7865cac67a461a63f445ff3e1a547.png](https://i-blog.csdnimg.cn/blog_migrate/ccec8d55d0498fb388f783d13f34544e.jpeg)
如何基于ggplot2构建相关系数矩阵热图
R语言中强大的map函数——铁哥小故事版
R语言中神奇的管道符“%>%”
Ubuntu系统下通过添加PPA形式更新R软件版本
Mac系列电脑上应用命令行安装R和Rstudio
编辑:沃沃酱 监制:悠悠然
铁哥在等你一起学习哦~![12195c8797231e17c3725c714ad19b15.png](https://i-blog.csdnimg.cn/blog_migrate/83990e4e2cea69bcbbd261cb1472daff.jpeg)