R语言数据可视化tidyr与ggplot2多个变量分层展示举例实现
目录
- 每个变量的密度分布情况
- 思考
- tidyr
- ggplot2进行绘图
par()
参数可以在一张图上实现不同变量的子图。如果我们想要用ggplot2
实现,则需要整理我们的原始数据,这通常是非常麻烦的,这时就需要用到我们的tidyr
来帮助我们绘图。可能说上面一段话不是很容易理解,下面我们来举个栗子。
每个变量的密度分布情况
y1 <- rnorm(20)y2 <- rnorm(20)dat <- data.frame(y1, y2)
现有的数据集:
y1y21-0.12781723 -2.3937688020.500740830.725552373-0.024194560.947217014-0.26366759 -0.6000675951.13042618 -0.0759104660.043131601.1867774270.011803430.1762770080.15208821 -0.124723919-0.72690758 -1.92233170101.04903577 -0.66208974110.896890820.16331929120.284714952.0062912713 -0.26956768 -0.1189777914 -0.81699454 -1.0557530215 -0.659237681.20971004160.182372701.5574546717 -0.52359358 -0.74253496181.369496471.0775947419 -0.398824380.83915414200.92084949 -1.04859906
目标绘图:

文章图片
思考 我们要如何利用
ggplot
达到上图的效果?需要用数据集,将y1与y2分别整理到一个新的变量上,叫做
var
;【R语言数据可视化tidyr与ggplot2多个变量分层展示举例实现】里面所有的值也变成一个新的变量,叫做
value
;如果只有两个变量整理起来还比较简单,但如果变量一旦增多,整理起来相对就较为繁琐。所以这里推荐使用
tidyr
包来进行整理。其用起来也非常简单。
tidyr 使用如下代码,我们就可以整理成想要的结果:
dat %>%gather(y1, y2, key = "var", https://www.it610.com/article/https://www.it610.com/article/https://www.it610.com/article/value = "value")
解释一下上述代码的含义:
y1, y2
表示原本数据中的变量;key = "var"
表示转换之后,变量所在的那一列的名称为var;https://www.it610.com/article/https://www.it610.com/article/https://www.it610.com/article/value = "value"
表示转换之后,原本的值所在的那一列的名称为value输出结果如下:
varvalue1y1 -0.127817232y10.500740833y1 -0.024194564y1 -0.263667595y11.130426186y10.043131607y10.011803438y10.152088219y1 -0.7269075810y11.0490357711y10.8968908212y10.2847149513y1 -0.2695676814y1 -0.8169945415y1 -0.6592376816y10.1823727017y1 -0.5235935818y11.3694964719y1 -0.3988243820y10.9208494921y2 -2.3937688022y20.7255523723y20.9472170124y2 -0.6000675925y2 -0.0759104626y21.1867774227y20.1762770028y2 -0.1247239129y2 -1.9223317030y2 -0.6620897431y20.1633192932y22.0062912733y2 -0.1189777934y2 -1.0557530235y21.2097100436y21.5574546737y2 -0.7425349638y21.0775947439y20.8391541440y2 -1.04859906
用了上述结果,就可以非常简单地使用ggplot2进行画图了。
ggplot2进行绘图 我们可以直接使用管道数据的处理方式进行绘图,简便快捷:
dat %>%gather(y1, y2, key = "var", https://www.it610.com/article/https://www.it610.com/article/https://www.it610.com/article/value = "value") %>%ggplot(aes(x = value)) + geom_histogram(aes(fill = factor(var), y = ..density..),alpha = 0.3, colour = 'black') +stat_density(geom = 'line', position = 'identity', size = 1.5,aes(colour = factor(var))) +facet_wrap(~ var, ncol = 2) + labs(y = '直方图与密度曲线', x = '值',title = '标题', fill = '变量') +theme(plot.title = element_text(hjust = 0.5)) +guides(color = FALSE)
这里基本都是前面的博客:R语言学习ggplot2绘制统计图形包全面详解 里面有提及到。
只有一个就是
guides(color = FALSE)
,表示隐藏线颜色的图例,因为线的颜色我们是用color =
来指定的。同理如果要隐藏柱状图颜色的图例则使用 guides(fill = FALSE)
即可。最终就可以得到我们的目标绘图了!

文章图片
以上就是R语言可视化tidyr与ggplot2多个变量分层展示举例实现的详细内容,更多关于R语言可视化tidyr与ggplot2多个变量分层的资料请关注脚本之家其它相关文章!
推荐阅读
- Docker应用:容器间通信与Mariadb数据库主从复制
- 【生信技能树】R语言练习题|【生信技能树】R语言练习题 - 中级
- 一起来学习C语言的字符串转换函数
- C语言字符函数中的isalnum()和iscntrl()你都知道吗
- C语言浮点函数中的modf和fmod详解
- C语言中的时间函数clock()和time()你都了解吗
- 为什么孩子一定要学会可视化思维!
- 使用协程爬取网页,计算网页数据大小
- C语言学习|第十一届蓝桥杯省赛 大学B组 C/C++ 第一场
- Java|Java基础——数组