文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

R语言数据可视化ggplot绘制置信区间以及分组绘图技巧是什么

2023-06-25 13:23

关注

本篇文章为大家展示了R语言数据可视化ggplot绘制置信区间以及分组绘图技巧是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

1. 单组情况

1)构造数据集

x <- 1:10y <- x^2ci_l <- x^2 - 0.5 * xci_r <- x^2 + 0.5 * xdat_plot <- data.frame(x, y, ci_l, ci_r)

数据集长下面这样:

x   y ci_l  ci_r1   1   1  0.5   1.52   2   4  3.0   5.03   3   9  7.5  10.54   4  16 14.0  18.05   5  25 22.5  27.56   6  36 33.0  39.07   7  49 45.5  52.58   8  64 60.0  68.09   9  81 76.5  85.510 10 100 95.0 105.0

2)绘制置信区间

添加置信区间的核心函数是:geom_ribbon(),并且要注意,先画置信区间,再绘制线条,才能保证线在置信区间的上方。

ggplot(dat_plot, aes(x = x)) +                  # x轴在此处添加,目的为了置信区间与拟合线共享同一个x  geom_ribbon(aes(ymin = ci_l, ymax = ci_r)) +  # 添加置信区间  geom_line(aes(y = y))                         # 添加拟合线

R语言数据可视化ggplot绘制置信区间以及分组绘图技巧是什么

(文末会对上面“丑丑”的置信区间进行美化。)

通常情况,所需的图片都是需要分组的,下面我们会进行分组绘制置信区间。

2. 多组情况

我们将会演示两种方式绘制分组情况绘制置信区间:

方法1

1)构造数据集

通常情况下,ggplot需要的向量化构造:

x <- 1:10y1 <- x^2ci_l1 <- x^2 - 0.5 * xci_r1 <- x^2 + 0.5 * xy2 <- 20 * log(x)ci_l2 <- 20 * log(x) - 0.5 * xci_r2 <- 20 * log(x) + 0.5 * xdat_plot <- data.frame(rbind(cbind(x, y1, ci_l1, ci_r1), cbind(x, y2, ci_l2, ci_r2)))names(dat_plot) <- c("x", "y", "ci_l", "ci_r")dat_plot$group <- rep(c("G1", "G2"), each = 10)

数据样式:

x         y     ci_l      ci_r group1   1   1.00000  0.50000   1.50000    G12   2   4.00000  3.00000   5.00000    G13   3   9.00000  7.50000  10.50000    G14   4  16.00000 14.00000  18.00000    G15   5  25.00000 22.50000  27.50000    G16   6  36.00000 33.00000  39.00000    G17   7  49.00000 45.50000  52.50000    G18   8  64.00000 60.00000  68.00000    G19   9  81.00000 76.50000  85.50000    G110 10 100.00000 95.00000 105.00000    G111  1   0.00000 -0.50000   0.50000    G212  2  13.86294 12.86294  14.86294    G213  3  21.97225 20.47225  23.47225    G214  4  27.72589 25.72589  29.72589    G215  5  32.18876 29.68876  34.68876    G216  6  35.83519 32.83519  38.83519    G217  7  38.91820 35.41820  42.41820    G218  8  41.58883 37.58883  45.58883    G219  9  43.94449 39.44449  48.44449    G220 10  46.05170 41.05170  51.05170    G2
2)绘制置信区间

注意,这里分组的关键就是使用 group = 参数。

ggplot(dat_plot, aes(x = x, group = group)) +  geom_ribbon(aes(ymin = ci_l, ymax = ci_r)) +  geom_line(aes(y = y))

R语言数据可视化ggplot绘制置信区间以及分组绘图技巧是什么

但是这里的颜色比较吃藕,所以我们改变一下线条的颜色与置信区间的颜色。

非常简单,我们将参数 group =color =fill = 替换即可。值得一提的是,这里的color = 如果加在ggplot()中,添加的就会是拟合线与置信区间外边线两条曲线。若不想要置信区间的外边线, color =写在geom_line()中即可。

此外,还需要注意,绘制置信区间,若线条与区间是相同颜色,一定要修改置信区间的透明度,利用alpha = 进行修改,其范围在0-1之间,并且值越小越透明。

代码如下:

ggplot(dat_plot, aes(x = x, color = group, fill = group)) +  geom_ribbon(aes(ymin = ci_l, ymax = ci_r), alpha = 0.3) +  # alpha 修改透明度  geom_line(aes(y = y))

R语言数据可视化ggplot绘制置信区间以及分组绘图技巧是什么

在大多数情况下,我们遇到的多组数据集长下面 方法2 这样,我们需要怎么进行绘制呢?下面继续进行讲解:

方法2

1)构造数据集
dat_plot <- data.frame(x, y1, ci_l1, ci_r1, y2, ci_l2, ci_r2) # 基于前文的数据
x  y1 ci_l1 ci_r1       y2    ci_l2    ci_r21   1   1   0.5   1.5  0.00000 -0.50000  0.500002   2   4   3.0   5.0 13.86294 12.86294 14.862943   3   9   7.5  10.5 21.97225 20.47225 23.472254   4  16  14.0  18.0 27.72589 25.72589 29.725895   5  25  22.5  27.5 32.18876 29.68876 34.688766   6  36  33.0  39.0 35.83519 32.83519 38.835197   7  49  45.5  52.5 38.91820 35.41820 42.418208   8  64  60.0  68.0 41.58883 37.58883 45.588839   9  81  76.5  85.5 43.94449 39.44449 48.4444910 10 100  95.0 105.0 46.05170 41.05170 51.05170
2)绘制置信区间

面对上述这种数据格式,我们处理起来也十分简单,我们只需要在对应的aes() 函数中,写清楚对应的分组名称即可。

color =fill = 一定要写在 aes() 里面!!!
color =fill = 一定要写在 aes() 里面!!!
color =fill = 一定要写在 aes() 里面!!!

重要的事情说三遍,具体代码如下所示:

ggplot(dat_plot, aes(x = x)) +  geom_ribbon(aes(ymin = ci_l1, ymax = ci_r1, fill = "G1"), alpha = 0.3) +  geom_ribbon(aes(ymin = ci_l2, ymax = ci_r2, fill = "G2"), alpha = 0.3) +  geom_line(aes(y = y1, color = "G1")) +  geom_line(aes(y = y2, color = "G2"))

R语言数据可视化ggplot绘制置信区间以及分组绘图技巧是什么

但这样的置信区间还比较丑,下面我们给出一个略微美化的版本,并在代码中进行注释,说明每个函数的用意。

3)美化
ggplot(dat_plot, aes(x = x)) +  geom_ribbon(aes(ymin = ci_l1, ymax = ci_r1, fill = "G1", color = "G1"),               alpha = 0.3, linetype = 2) +        # linetype = 2 表示置信区间描边线为虚线  geom_ribbon(aes(ymin = ci_l2, ymax = ci_r2, fill = "G2", color = "G2"),               alpha = 0.3, linetype = 2) +  geom_line(aes(y = y1, color = "G1")) +  geom_line(aes(y = y2, color = "G2")) +  theme_bw(base_family = "Times") +  theme(panel.grid = element_blank(),    legend.position = "top",                      # legend 置顶    panel.border = element_blank(),    text = element_text(family = "STHeiti"),      # Mac 系统中中文绘图    plot.title = element_text(hjust = 0.5)) +     # 标题居中  labs(x = "y", y = "x", title = "分组置信区间",       color = "", fill = "")                      # 将置信区间与拟合线的 legend 合并,并且不要 legend 的小标题

R语言数据可视化ggplot绘制置信区间以及分组绘图技巧是什么

以上就是R语言数据可视化ggplot绘制置信区间与分组绘图技巧的详细内容,更多关于ggplot绘制置信区间与分组绘图的资料请关注编程网其它相关文章!

上述内容就是R语言数据可视化ggplot绘制置信区间以及分组绘图技巧是什么,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯