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

 更新时间:2021年11月06日 10:23:17   作者:Kanny广小隶  
这篇文章主要为大家介绍了R语言可视化tidyr与ggplot2多个变量的分层展示,实现过程文中通过举例为大家进行了详解,有需要的朋友可以借鉴参考下

在R语言普通的绘图中,使用par()参数可以在一张图上实现不同变量的子图。如果我们想要用ggplot2实现,则需要整理我们的原始数据,这通常是非常麻烦的,这时就需要用到我们的tidyr来帮助我们绘图。

可能说上面一段话不是很容易理解,下面我们来举个栗子。

每个变量的密度分布情况

y1 <- rnorm(20)
y2 <- rnorm(20)
dat <- data.frame(y1, y2)

现有的数据集:

            y1          y2
1  -0.12781723 -2.39376880
2   0.50074083  0.72555237
3  -0.02419456  0.94721701
4  -0.26366759 -0.60006759
5   1.13042618 -0.07591046
6   0.04313160  1.18677742
7   0.01180343  0.17627700
8   0.15208821 -0.12472391
9  -0.72690758 -1.92233170
10  1.04903577 -0.66208974
11  0.89689082  0.16331929
12  0.28471495  2.00629127
13 -0.26956768 -0.11897779
14 -0.81699454 -1.05575302
15 -0.65923768  1.20971004
16  0.18237270  1.55745467
17 -0.52359358 -0.74253496
18  1.36949647  1.07759474
19 -0.39882438  0.83915414
20  0.92084949 -1.04859906

目标绘图:

思考

我们要如何利用ggplot达到上图的效果?

需要用数据集,将y1与y2分别整理到一个新的变量上,叫做var

里面所有的值也变成一个新的变量,叫做value

如果只有两个变量整理起来还比较简单,但如果变量一旦增多,整理起来相对就较为繁琐。所以这里推荐使用tidyr包来进行整理。

其用起来也非常简单。

tidyr

使用如下代码,我们就可以整理成想要的结果:

dat %>%
  gather(y1, y2, key = "var", value = "value")

解释一下上述代码的含义:y1, y2表示原本数据中的变量;key = "var" 表示转换之后,变量所在的那一列的名称为var;value = "value"表示转换之后,原本的值所在的那一列的名称为value

输出结果如下:

   var       value
1   y1 -0.12781723
2   y1  0.50074083
3   y1 -0.02419456
4   y1 -0.26366759
5   y1  1.13042618
6   y1  0.04313160
7   y1  0.01180343
8   y1  0.15208821
9   y1 -0.72690758
10  y1  1.04903577
11  y1  0.89689082
12  y1  0.28471495
13  y1 -0.26956768
14  y1 -0.81699454
15  y1 -0.65923768
16  y1  0.18237270
17  y1 -0.52359358
18  y1  1.36949647
19  y1 -0.39882438
20  y1  0.92084949
21  y2 -2.39376880
22  y2  0.72555237
23  y2  0.94721701
24  y2 -0.60006759
25  y2 -0.07591046
26  y2  1.18677742
27  y2  0.17627700
28  y2 -0.12472391
29  y2 -1.92233170
30  y2 -0.66208974
31  y2  0.16331929
32  y2  2.00629127
33  y2 -0.11897779
34  y2 -1.05575302
35  y2  1.20971004
36  y2  1.55745467
37  y2 -0.74253496
38  y2  1.07759474
39  y2  0.83915414
40  y2 -1.04859906

用了上述结果,就可以非常简单地使用ggplot2进行画图了。

ggplot2进行绘图

我们可以直接使用管道数据的处理方式进行绘图,简便快捷:

dat %>%
  gather(y1, y2, key = "var", 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语言实现前向逐步回归(前向选择模型)

    详解R语言实现前向逐步回归(前向选择模型)

    本文主要介绍了详解R语言实现前向逐步回归,从实现原理开始,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • R语言及RStudio下载与安装方法

    R语言及RStudio下载与安装方法

    这篇文章主要介绍了R、RStudio下载与安装方法,本文通过图文图文并茂的方法给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • R语言刷题检验数据缺失类型过程详解

    R语言刷题检验数据缺失类型过程详解

    这篇文章主要为大家介绍了R语言刷题中检验数据缺失类型的过程示例分析详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2021-11-11
  • R语言文本文件读写(txt/csv/xlsx)

    R语言文本文件读写(txt/csv/xlsx)

    这篇文章主要介绍了R语言文本文件读写(txt/csv/xlsx),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • R语言strsplit函数用法深入详解

    R语言strsplit函数用法深入详解

    这篇文章主要介绍了R语言strsplit函数用法深入详解,代码实例讲解的很清晰,有感兴趣的同学可以研究下
    2021-03-03
  • R语言绘制带误差线的条形图

    R语言绘制带误差线的条形图

    本文主要介绍了R语言绘制带误差线的条形图,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • R语言ggplot2设置图例(legend)的操作大全

    R语言ggplot2设置图例(legend)的操作大全

    ggplot2是一个绘制可视化图形的R包,汲取了R语言基础绘图系统(graphics)和l attice包的优点,下面这篇文章主要给大家介绍了关于R语言ggplot2设置图例(legend)的操作大全,需要的朋友可以参考下
    2022-07-07
  • R语言两组变量特征相关关系热图绘制画法

    R语言两组变量特征相关关系热图绘制画法

    本文为大家介绍了如何画两组变量(特征)的相关关系热图的方法详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2022-02-02
  • R语言实现漂亮的ROC图效果

    R语言实现漂亮的ROC图效果

    pROC是一个专门用来计算和绘制ROC曲线的R包,目前已被CRAN收录,因此安装也非常简单,同时该包也兼容ggplot2函数绘图,本次就教大家怎么用pROC来快速画出ROC图,感兴趣的朋友一起看看吧
    2022-06-06
  • R语言绘制直方图实例讲解

    R语言绘制直方图实例讲解

    在本篇内容里小编给大家整理了一篇关于R语言绘制直方图实例讲解内容,有需要的朋友们可以学习下。
    2021-04-04

最新评论