R语言数据可视化tidyr与ggplot2多个变量分层展示举例实现

目录

  • 每个变量的密度分布情况
  • 思考
  • tidyr
  • ggplot2进行绘图
在R语言普通的绘图中,使用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

目标绘图:
R语言数据可视化tidyr与ggplot2多个变量分层展示举例实现
文章图片


思考 我们要如何利用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多个变量分层展示举例实现的详细内容,更多关于R语言可视化tidyr与ggplot2多个变量分层的资料请关注脚本之家其它相关文章!

    推荐阅读