热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

c++根据点组绘制图形_R语言统计与绘图:绘制不同坐标轴置信区间的森林图

今天继续来学习下复杂点的森林图绘制,如下图所示,相同变量,不同置信区间,不同坐标轴。今天来学习在R中怎么绘制上面这种森林图。

3953bfe596c3ba86d8e690e3383e0378.png

今天继续来学习下复杂点的森林图绘制,如下图所示,相同变量,不同置信区间,不同坐标轴。

62f44f27c32a4081633df6afe4eedc6b.png

今天来学习在R中怎么绘制上面这种森林图。


目  录

  • 1. 安装和加载R包

  • 2. 读取数据

  • 3. 数据处理

    • 3.1 定义亚组

    • 3.2 转换数据格式

  • 4. 绘制森林图

  • 5. 使用PS合并森林图

    • 5.1 用PS打开PDF

    • 5.2 创建新文档

    • 5.3 复制图形到新文档上

    • 5.4 删除文字内容

    • 5.5 调整图形位置

    • 5.6 保存图形

  • 6. 使用AI合并森林图

    • 6.1 用AI打开PDF

    • 6.2 移动图形到一张画板上

    • 6.3 删除文字内容

    • 6.4 调整图形位置

    • 6.5 保存图形


1. 安装和加载R包

forestplot包是基于rmeta包的forestplot函数创建的,但是功能更强大,可以对同一标签添加多个置信区间。

install.packages("forestplot")  #安装forestplot包 library(forestplot)  # 加载包 

2. 读取数据

以前面推文的数据为例,将数据录入到Excel中,录入数据格式如下图所示:

0681d10d7c6e36bee304f7648e046b77.png

library(readxl) # 使用RStudio软件的导入数据功能 
forest "forest.xlsx") 
View(forest) # 预览数据 

191d8287235935d093fdfd149eb7440d.png
展示部分数据

3. 数据处理

3.1 定义亚组

在论文图片中,为了区分以及显示的更清楚,亚组一般会向前缩进两个空格。

subgps 3,4,7,8,11,12,15,16,19,20,23,24,25,26) 
# 指定要缩进的亚组,此处向量中的数字表示亚组的行数
forest$Variable[subgps] "    ",forest$Variable[subgps])  
# 亚组前添加两空格
View(forest) # 预览数据看看有没有添加空格

10605d488f5e7419deff4a3457440a00.png

3.2 转换数据格式

attach(forest)  # 绑定数据框  
labeltext 1]) 
# 将forest数据框的第1列转换为矩阵
# 以矩阵形式将文本数据导入函数

4. 绘制森林图

今天要绘制的森林图为相同变量,不同置信区间,每个置信区间的坐标轴还不一样。在forest包没找到一次性出图的办法,可以考虑先分别绘制每张森林图,导出PDF后再在AI或PS软件中进行合并。

根据示例数据所示,我们要先分别绘制三张森林图,导出PDF格式图形。

# 设置导出图形为PDF格式,命名为forestplot1。
pdf("forestplot1.pdf", width = 8, height = 6.0)# 绘制图形
forestplot(labeltext,  # 图形文本部分 
           mean = HR,  # 图形 HR 部分 
           lower = Lower, # 95%CI下限           
           upper = Upper, # 95%CI上限
           zero = 1.0, # 设置无效线的横坐标
           xlab = "", # 设置x轴标题 
           xticks = c(0.5,1.0,1.5,2.0,2.5),  # 设置x轴刻度ticks
           boxsize = 0.3, # 设置Box的大小,保持大小一样
           graphwidth = unit(0.25, "npc"),
           ci.vertices = TRUE,  # 森林图置信区间两端添加小竖线,默认FALSE
           ci.vertices.height = 0.2, # 设置森林图置信区间两端小竖线的高度,默认0.1
           align = "l",  # 文字对齐方式,"l"、"r"和"c"分别为左对齐,右对齐和居中对齐
           txt_gp = fpTxtGp(label = gpar(cex = 1.0), # 设置文本字体大小
                            ticks = gpar(cex = 1.0), # 设置坐标轴刻度大小
                            xlab = gpar(cex = 1.0))) # 设置坐标轴标题大小
dev.off()

26d345d1b0cba8083a5d8af6068483fa.png
forestplot1

如上图所示,我们根据代码已经绘制了第一张森林图,后面两张森林图也根据上述代码绘制,不过需要修改部分参数。修改参数如下:

# 第二张森林图
pdf("forestplot2.pdf", width = 8, height = 6.0)
mean = HR1  
lower = Lower1            
upper = Upper1 # 第三张森林图
pdf("forestplot3.pdf", width = 8, height = 6.0)
mean = HR2 
lower = Lower2           
upper = Upper2# 其他参数根据需要酌情修改。
6c4cf67d1b6765f4de9f6f3ba60d4beb.png6318cfab96c412a617a27a73600b336f.png

<<<左右滑动见更多 >>>

5. 使用PS合并森林图

5.1 用PS打开PDF

将3张PDF格式图形分别用PS打开&#xff0c;在打开时选择分辨率&#xff0c;一般设置为600分辨率。

efb09539b3a905195b070a95bf7a50f5.png

5.2 创建新文档

在创建新文档之前查看每一张PDF森林图的宽度和高度。点击PS软件菜单栏的图象-图象大小查看。

25d1d9a5a2beb4749d1efa89768c72aa.png

森林图的宽度为12.65厘米&#xff0c;高度为14.24厘米&#xff0c;我们要横着合并图形&#xff0c;3张图则37厘米多。

8ea8a6048919bc69b6488c75734713c7.png

5.3 复制图形到新文档上

创建好新文档后&#xff0c;界面分别移动到三张图上&#xff0c;使用快捷键Ctrl&#43;A全选&#xff0c;Ctrl&#43;C复制&#xff0c;在新文档上使用Ctrl&#43;V粘贴图形。

69c3f335d552aabf5c6f598743de580b.png
0090670a44ab369cf8f5256d0423fbf5.png

如上所示&#xff0c;将三张图形移动到了新文档中&#xff0c;通过移动工具调整图形的摆放顺序。

1090209a14731ab9644e190a93df83ea.png

5.4 删除文字内容

选中不同的图层&#xff0c;使用矩形选框工具&#xff0c;分别选中第2张、第3张森林图的文字部分&#xff0c;使用delete键删除文字内容。

760e6e0efbe8d5c6aaf88d26395c22ba.png

5.5 调整图形位置

删除文字内容后&#xff0c;分别选中第2张、第3张森林图&#xff0c;配合shift键调整两张图形的位置。

56a16675dc6f050b56ff4e5755a675d1.png

5.6 保存图形

如上图所示&#xff0c;图形合并好了&#xff0c;先通过裁剪工具裁剪不必要的部分&#xff0c;还可以通过图象-图象大小调整输出图象的大小。

d16cde06e4991de2f4a8ad31fa853213.png

通过文件-存储为-选择TIFF格式保存图形。

d028e82eddba25c5b713c426db5536ac.png

选择图象压缩类型为LZW&#xff0c;图层压缩选择扔掉图层并存储拷贝&#xff0c;点击确定输出图形。

9bab8b6867a5f2ab2497a1a2e2fbadfe.png
输出图形

6. 使用AI合并森林图

6.1 用AI打开PDF

将3张PDF格式图形分别用AI打开&#xff0c;如下图所示&#xff1a;

1e387a9856112d0b9378cee04cabe016.png

6.2 移动图形到一张画板上

在第1张图形上&#xff0c;用鼠标选中所有的图形元素&#xff0c;使用快捷键Ctrl&#43;G将所有图形元素编组。第2张、第3张图形同样操作。

使用快捷键ctrl&#43;C复制第二张、第三张图&#xff0c;ctrl&#43;V粘贴这两张图形到第1张图形上。

9ee426affb22e79316141b48f2fdcdc8.png

6.3 删除文字内容

使用画板工具调整画板大小&#xff0c;使用Ctrl&#43;Shift&#43;G快捷键取消第2张、第3张的图形编组&#xff0c;然后鼠标选中第2张、第3张图形的文字部分&#xff0c;然后使用Delete删除掉。

3158fb30c5106549ef373319d9bd6076.png

6.4 调整图形位置

删除掉文字部分后&#xff0c;使用鼠标分别选中第二张、第三张的图形部分&#xff0c;然后使用快捷键Ctrl&#43;G将图形部分编组&#xff0c;调整移动这两张图形的位置。

1f47f1799e5f75b1b8c56be63067f529.png

6.5 保存图形

如上图所示&#xff0c;使用画板工具调整画板的大小。

a2209b555bc6607685043e979848683e.png

调整好大小以后&#xff0c;通过文件-存储为-选择EPS格式保存为EPS格式图形。

还可以选择文件-导出-导出为-选择TIFF格式保存为TIFF格式&#xff0c;在导出时可以选择图形的分辨率。

bb671d6eb6b13a4b7a4855cb7b075d00.png
cf2155aa38e53b3d1db8f21659e4c46a.png

如需联系EasyShu团队

请加微信&#xff1a;EasyCharts

微信公众号【EasyShu】博文代码集合地址

https://github.com/Easy-Shu/EasyShu-WeChat

数据可视化之美系列书籍

14875d64fcb0534ced8139177b151173.png

《Python数据可视化之美》-配套源代码下载地址

Github

https://github.com/Easy-Shu/Beautiful-Visualization-with-python

《R语言数据可视化之美》-增强版配套源代码下载地址

Github

https://github.com/Easy-Shu/Beautiful-Visualization-with-R

ec737ae8254d7872115488a36aaba31d.png




推荐阅读
  • 1、Everything:速度最快最好用的文件搜索工具,可以基于文件名极速搜索、瞬间定位文件,所有匹配的文件或文件夹都会实时显示,Windows7之后为减少硬盘占用,在关闭索引功能后不能得到“即搜既 ... [详细]
  • ARToolKitunity
    ARToolKit为开源的AR库,相对于高通和easyAr有几点特点:1)开源2)识别项目可以动态添加(详细在后)3)识别文件可以本地生成4)目前只能识别图片(目前为.jpg格式) ... [详细]
  • 怎么把bmp转换成pdf?bmp转pdf格式软件推荐
     相信大家应该对图片格式有所了解,bmp就是其中的一种图片格式,而pdf是一种常见的文件格式。两者本来没有太大的练习,不过有些小伙伴在后台向我咨询,如何实现bmp转pdf ... [详细]
  • 下载安装并配置flutter
    1.去github上下载flutter安装包https:github.comflutterflutterreleasestag2.0.42.将安装包zip解压到你想安装Flut ... [详细]
  • apk简单介绍APK的组成apk安装流程app的启动过程apk打包流程AIDLAIDL介绍为什么要设计这门语言它有哪些语法?默认支持的数据类型包括什么是apk打包流程 ... [详细]
  • 十一、构建我们自己的包在本章中,我们将学习如何构建自己的包。编写包可以让我们创建可以在许多应用 ... [详细]
  • 开发笔记:深度探索!Android之OkHttp网络架构源码解析
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了深度探索!Android之OkHttp网络架构源码解析相关的知识,希望对你有一定的参考价值。 ... [详细]
  • UDP协议开发
    UDP是用户数据报协议(UserDatagramProtocol,UDP)的简称,其主要作用是将网络数据流量压缩成数据报形式,提供面向事务的简单信息传送服务。与TCP协议不同,UD ... [详细]
  • 本节书摘来自华章计算机《Web前端开发最佳实践》一书中的第2章,第2.2节,作者:党 建更多章节内容可以访问云栖社区“华章计算机”公众号查看。2.2 前端代码重构代码 ... [详细]
  • pdf怎么把html变成pdf1 用AdobeAcroat8.1.2,打开网页后,页面右键菜单中会出现一个“转换为AobePDF的选项,点击就可以转换。 安装AdobeAcroba ... [详细]
  • Echarts 3D地图图表
    需求:实现如图所示的3D地图图表(1)原本使用的highcharts没有3d地图的功能,搜索插件也没有可替代的方案ÿ ... [详细]
  • 2019 年 Firebase 峰会上发布的新功能
    作者FrancisMa,HeadofProductFirebase的使命是帮助移动开发者和Web开发者迈向成功,但考虑到Firebase每个月有超过200万个活跃的应 ... [详细]
  • 零入门kubernetes网络实战15>基于golang编程实现给ns网络命名空间添加额外的网卡
    《零入门kubernetes网络实战》视频专栏地址https:www.ixigua.com7193641905282875942本篇文章视频地址(稍后上传)本篇文章主要是想通过g ... [详细]
  • Go 中的 init 函数 ... [详细]
  • 如何设计一个秒杀系统(各方面都写的很到位)
    1.Overview1.1并发读写秒杀要解决的主要问题是:并发读与并发写。并发读的优化理念是尽量减少用户到服务端来读数据,或者让他 ... [详细]
author-avatar
轩轩20110804
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有