当前位置: 首页 > news >正文

呼和浩特建设工程安全管理网站/网络推广策划案

呼和浩特建设工程安全管理网站,网络推广策划案,苏州高端网站设计,阳江房产网二手房出售📋文章目录原图图片元素拆解ggplot绘制森林图过程加载相关程序包和数据填充色块添加箭头与注释参照线附上所有代码森林图是以统计指标和统计分析方法为基础,用数值运算结果绘制出的图型。它在平面直角坐标系中,以一条垂直的无效线(横坐标刻度…

📋文章目录

  • 原图
  • 图片元素拆解
  • ggplot绘制森林图过程
    • 加载相关程序包和数据
    • 填充色块
    • 添加箭头与注释
    • 参照线
  • 附上所有代码

   森林图是以统计指标和统计分析方法为基础,用数值运算结果绘制出的图型。它在平面直角坐标系中,以一条垂直的无效线(横坐标刻度为1或0)为中心,用平行于横轴的多条线段描述了每个被纳入研究的效应量和置信区间(CI),用一个棱形(或其它图形)描述了多个研究合并的效应量及置信区间。它非常简单和直观地描述了Meta分析的统计结果,是Meta分析中最常用的结果表达形式。

原图

   先看看所需复现的森林图:

在这里插入图片描述
接下来,我们来模仿复现这张图。

图片元素拆解

我们可以看到,这张森林图由以下四类元素组成:

  1. 带方向的箭头: 可以用geom_curve()函数实现,通过(x=x1, y=y1, xend=x2, yend=y2)中的 (x1, y1)和(x2, y2)指定箭头的方向,当x1=x2时,箭头垂直于x轴;当y1=y2时,箭头垂直于y轴,与例图中一致。
  2. 箭头上的注释:可以用annotate()函数实现,通过(x=x1, y=y1, label= “apple”)在图中(x1,y1)的位置注释apple这个单词。
  3. 区域填充的色块:可以用geom_rect()函数实现,通过(aes(xmin= x1, ymin= y1, xmax= x2, ymax= y2), fill = “red”, color = “red”)在图中(x1, x2, y1, y2)的位置填充红色的方块,当xmin= -Inf, xmax= Inf时,将沿整个x轴进行填充。
  4. 虚化的参照线:可用geom_vline()实现,通过(aes(xintercept=x1), colour= “red”, linetype= “dashed”)在图中x=x1的位置填充红色的参照虚线。假如要绘制垂直于y轴y=y1的线,那么函数就是geom_hline(aes(yintercept= y1))。

在这里插入图片描述
所以我们使用ggplot2包便可以完成整张图像的绘制,但值得注意的是,ggplot2的基础逻辑ggplot2包的学习逻辑是图层覆盖,因此我们要按先绘制色块,再添加虚线,再添加箭头和注释的顺序进行画图。

ggplot绘制森林图过程

加载相关程序包和数据

rm(list=ls())library(ggplot2)
library(openxlsx)
library(tidyverse)data<- read.xlsx("Figure.xlsx",1)
mydata<- mutate(data, seq=c(1:nrow(data))) %>%arrange(desc(seq));mydata
mydata$Trait<- factor(mydata$Trait, levels = mydata$Trait)

在这里插入图片描述
数据中的Trait是y轴左边的标签,OR是图中的原点,LCI与UCL是箭头的起点与终点。

填充色块

p1<- ggplot(mydata,aes(x=OR,y=Trait, color=Type))+theme_bw()+theme(legend.position = "none")+ #去掉图注geom_point()+geom_rect(aes(xmin = -Inf, ymin = 0,xmax = Inf, ymax = 3.5),#填充0-3.5的棕色色块fill = "#E6E5E3", color = "#E6E5E3", size =1.5);p1

在这里插入图片描述
在y=0-3.5的区域填充棕色的色块,要注意的是,fill填充的是方块内部的颜色,color指的是方框的颜色,因此二者需要一致。

p2<- p1+ geom_rect(aes(xmin = -Inf, ymin = 3.4,xmax = Inf, ymax = 7.5),fill = "#BFD6ED", color = "#BFD6ED", size =1.5)+geom_rect(aes(xmin = -Inf, ymin = 7.5,xmax = Inf, ymax = 9.5),fill = "#C7DFB5", color = "#C7DFB5", size =1.5)+geom_rect(aes(xmin = -Inf, ymin = 9.5,xmax = Inf, ymax = 10.5),fill = "#FDE5A0", color = "#FDE5A0", size =1.5)+geom_rect(aes(xmin = -Inf, ymin = 10.5,xmax = Inf, ymax = 11.5),fill = "#FEEFCF", color = "#FEEFCF", size =1.5)+geom_rect(aes(xmin = -Inf, ymin = 11.5,xmax = Inf, ymax = 16.5),fill = "#FBE7DD", color = "#FBE7DD", size =1.5);p2

在这里插入图片描述
填充完色块了,就可以开始着点画箭头了。

添加箭头与注释

p3<- p2+geom_point(size=2)+#画点scale_fill_manual(values = c("#EB0D20", "#C0A42F", "#77621D","#5F8744", "#1D7CBA", "#828282"))+scale_color_manual(values = c("#EB0D20", "#C0A42F", "#77621D","#5F8744", "#1D7CBA", "#828282"))+geom_curve(aes(x = 1.051, y = 16, xend = 1.505, yend = 16),arrow = arrow(length = unit(0.02, "npc"), type="closed"),colour = "#EB0D20", size = 0.5, angle = 0)+annotate("text",x= 1.258,y= 16.4 , label="46 SNPs",size=4);p3

在这里插入图片描述
箭头的起点与终点就是数据中的LCI与UCI,而注释的位置则要比点的位置略微高一些。由于无法批量将具体参数批量映射到箭头和注释上,因此我们需要手动输入相关参数。

p4<- p3+geom_curve(aes(x = 1.202, y = 15, xend = 1.692, yend = 15),arrow = arrow(length = unit(0.02, "npc"), type="closed"),colour = "#EB0D20", size = 0.5, angle = 0)+annotate("text",x= 1.426, y= 15.4 , label="12 SNPs",size=4)+ #Chgeom_curve(aes(x = 1, y = 14, xend = 1.235, yend = 14),arrow = arrow(length = unit(0.02, "npc"), type="closed"),colour = "#EB0D20", size = 0.5, angle = 0)+annotate("text", x= 1.112, y= 14.4 , label="3 SNPs",size=4)+ #Gageom_curve(aes(x = 1.004, y =13, xend = 1.131, yend = 13),arrow = arrow(length = unit(0.02, "npc"), type="closed"),colour = "#EB0D20", size = 0.5, angle = 0)+annotate("text", x= 1.066, y= 13.4 , label="25 SNPs",size=4)+ #PSgeom_curve(aes(x = 0.965, y =12, xend = 1.068, yend = 12),arrow = arrow(length = unit(0.02, "npc"), type="closed"),colour = "#EB0D20", size = 0.5, angle = 0)+annotate("text", x= 1.015, y= 12.4 , label="82 SNPs",size=4)+  #PBgeom_curve(aes(x = 0.898, y = 11, xend = 1.208, yend = 11),arrow = arrow(length = unit(0.02, "npc"), type="closed"),colour = "#C0A42F", size = 0.5, angle = 0)+annotate("text", x= 1.042, y= 11.4 , label="4 SNPs",size=4)+ #vigeom_curve(aes(x = 0.826, y =10, xend = 1.694 , yend = 10),arrow = arrow(length = unit(0.02, "npc"), type="closed"),colour = "#77621D", size = 0.5, angle = 0)+annotate("text", x= 1.183, y= 10.4 , label="3 SNPs",size=4)+ #Pageom_curve(aes(x = 0.952, y = 9, xend = 1.941, yend = 9),arrow = arrow(length = unit(0.02, "npc"), type="closed"),colour = "#5F8744", size = 0.5, angle = 0)+annotate("text", x= 1.359, y= 9.4 , label="16 SNPs",size=4)+ #Gasgeom_curve(aes(xend = 0.821, y = 8, x = 1.029, yend = 8),arrow = arrow(length = unit(0.02, "npc"), type="closed"),colour = "#5F8744", size = 0.5, angle = 0)+annotate("text", x= 0.919, y= 8.4 , label="8 SNPs",size=4)+ #Gatgeom_curve(aes(x = 0.932, y = 7, xend = 1.078, yend = 7),arrow = arrow(length = unit(0.02, "npc"), type="closed"),colour = "#1D7CBA", size = 0.5, angle = 0)+annotate("text", x= 1.002, y= 7.4 , label="81 SNPs",size=4)+ #IBgeom_curve(aes(x = 1.000, y = 6, xend = 1.138, yend = 6),arrow = arrow(length = unit(0.02, "npc"), type="closed"),colour = "#1D7CBA", size = 0.5, angle = 0)+annotate("text", x= 1.067, y= 6.4 , label="48 SNPs",size=4)+ #UCgeom_curve(aes(xend = 0.936, y = 5, x = 1.053, yend = 5),arrow = arrow(length = unit(0.02, "npc"), type="closed"),colour = "#1D7CBA", size = 0.5, angle = 0)+annotate("text", x= 0.993, y= 5.4 , label="65 SNPs",size=4)+ #CDgeom_curve(aes(x = 0.638, y = 4, xend = 2.763, yend = 4),arrow = arrow(length = unit(0.02, "npc"), type="closed"),colour = "#1D7CBA", size = 0.5, angle = 0)+annotate("text", x= 1.327, y= 4.4 , label="5 SNPs",size=4)+ #ISgeom_curve(aes(x = 0.942, y = 3, xend = 1.170 , yend = 3),arrow = arrow(length = unit(0.02, "npc"), type="closed"),colour = "#828282", size = 0.5, angle = 0)+annotate("text", x= 1.050, y= 3.4 , label="10 SNPs",size=4)+ #Apgeom_curve(aes(xend = 0.609, y = 2, x = 1.616, yend = 2),arrow = arrow(length = unit(0.02, "npc"), type="closed"),colour = "#828282", size = 0.5, angle = 0)+annotate("text", x= 0.992, y= 2.4 , label="8 SNPs",size=4)+ #PUgeom_curve(aes(x = 0.779, y = 1, xend = 1.459, yend = 1),arrow = arrow(length = unit(0.02, "npc"), type="closed"),colour = "#828282", size = 0.5, angle = 0)+annotate("text", x= 1.066, y= 1.4 , label="80 SNPs",size=4);p4

在这里插入图片描述

参照线

p5<- p4+geom_vline(aes(xintercept=0.6), colour="grey50", linetype="dashed", size=0.3)+geom_vline(aes(xintercept=0.7), colour="grey50", linetype="dashed", size=0.3)+geom_vline(aes(xintercept=0.8), colour="grey50", linetype="dashed", size=0.3)+geom_vline(aes(xintercept=0.9), colour="grey50", linetype="dashed", size=0.3)+geom_vline(aes(xintercept=1), colour="black", linetype="dashed", size=0.3)+geom_vline(aes(xintercept=1.1), colour="grey50", linetype="dashed", size=0.3)+geom_vline(aes(xintercept=1.2), colour="grey50", linetype="dashed", size=0.3)+geom_vline(aes(xintercept=1.3), colour="grey50", linetype="dashed", size=0.3)+geom_vline(aes(xintercept=1.4), colour="grey50", linetype="dashed", size=0.3)+geom_vline(aes(xintercept=1.5), colour="grey50", linetype="dashed", size=0.3)+geom_vline(aes(xintercept=1.6), colour="grey50", linetype="dashed", size=0.3)+geom_vline(aes(xintercept=1.7), colour="grey50", linetype="dashed", size=0.3)+geom_vline(aes(xintercept=1.8), colour="grey50", linetype="dashed", size=0.3)+geom_vline(aes(xintercept=1.9), colour="grey50", linetype="dashed", size=0.3)+geom_vline(aes(xintercept=2.0), colour="grey50", linetype="dashed", size=0.3)+geom_vline(aes(xintercept=2.1), colour="grey50", linetype="dashed", size=0.3)+geom_vline(aes(xintercept=2.2), colour="grey50", linetype="dashed", size=0.3)+geom_vline(aes(xintercept=2.3), colour="grey50", linetype="dashed", size=0.3)+geom_vline(aes(xintercept=2.4), colour="grey50", linetype="dashed", size=0.3)+geom_vline(aes(xintercept=2.5), colour="grey50", linetype="dashed", size=0.3)+geom_vline(aes(xintercept=2.6), colour="grey50", linetype="dashed", size=0.3)+geom_vline(aes(xintercept=2.7), colour="grey50", linetype="dashed", size=0.3)+geom_vline(aes(xintercept=2.8), colour="grey50", linetype="dashed", size=0.3);p5

在这里插入图片描述
复现成功!

附上所有代码

rm(list=ls())library(ggplot2)
library(openxlsx)
library(tidyverse)data<- read.xlsx("Figure.xlsx",1)
mydata<- mutate(data, seq=c(1:nrow(data))) %>%arrange(desc(seq));mydata
mydata$Trait<- factor(mydata$Trait, levels = mydata$Trait)ggplot(mydata,aes(x=OR,y=Trait, color=Type))+theme_bw()+theme(legend.position = "none")+ #去掉图注geom_point()+geom_rect(aes(xmin = -Inf, ymin = 0,xmax = Inf, ymax = 3.5),#色块fill = "#E6E5E3", color = "#E6E5E3", size =1.5)+geom_rect(aes(xmin = -Inf, ymin = 3.4,xmax = Inf, ymax = 7.5),fill = "#BFD6ED", color = "#BFD6ED", size =1.5)+geom_rect(aes(xmin = -Inf, ymin = 7.5,xmax = Inf, ymax = 9.5),fill = "#C7DFB5", color = "#C7DFB5", size =1.5)+geom_rect(aes(xmin = -Inf, ymin = 9.5,xmax = Inf, ymax = 10.5),fill = "#FDE5A0", color = "#FDE5A0", size =1.5)+geom_rect(aes(xmin = -Inf, ymin = 10.5,xmax = Inf, ymax = 11.5),fill = "#FEEFCF", color = "#FEEFCF", size =1.5)+geom_rect(aes(xmin = -Inf, ymin = 11.5,xmax = Inf, ymax = 16.5),fill = "#FBE7DD", color = "#FBE7DD", size =1.5)+geom_point(size=2)+#画点scale_fill_manual(values = c("#EB0D20", "#C0A42F", "#77621D","#5F8744", "#1D7CBA", "#828282"))+scale_color_manual(values = c("#EB0D20", "#C0A42F", "#77621D","#5F8744", "#1D7CBA", "#828282"))+geom_curve(aes(x = 1.051, y = 16, xend = 1.505, yend = 16),arrow = arrow(length = unit(0.02, "npc"), type="closed"),colour = "#EB0D20", size = 0.5, angle = 0)+annotate("text",x= 1.258,y= 16.4 , label="46 SNPs",size=4)+ #GSgeom_curve(aes(x = 1.202, y = 15, xend = 1.692, yend = 15),arrow = arrow(length = unit(0.02, "npc"), type="closed"),colour = "#EB0D20", size = 0.5, angle = 0)+annotate("text",x= 1.426, y= 15.4 , label="12 SNPs",size=4)+ #Chgeom_curve(aes(x = 1, y = 14, xend = 1.235, yend = 14),arrow = arrow(length = unit(0.02, "npc"), type="closed"),colour = "#EB0D20", size = 0.5, angle = 0)+annotate("text", x= 1.112, y= 14.4 , label="3 SNPs",size=4)+ #Gageom_curve(aes(x = 1.004, y =13, xend = 1.131, yend = 13),arrow = arrow(length = unit(0.02, "npc"), type="closed"),colour = "#EB0D20", size = 0.5, angle = 0)+annotate("text", x= 1.066, y= 13.4 , label="25 SNPs",size=4)+ #PSgeom_curve(aes(x = 0.965, y =12, xend = 1.068, yend = 12),arrow = arrow(length = unit(0.02, "npc"), type="closed"),colour = "#EB0D20", size = 0.5, angle = 0)+annotate("text", x= 1.015, y= 12.4 , label="82 SNPs",size=4)+ #PBgeom_curve(aes(x = 0.898, y = 11, xend = 1.208, yend = 11),arrow = arrow(length = unit(0.02, "npc"), type="closed"),colour = "#C0A42F", size = 0.5, angle = 0)+annotate("text", x= 1.042, y= 11.4 , label="4 SNPs",size=4)+ #vigeom_curve(aes(x = 0.826, y =10, xend = 1.694 , yend = 10),arrow = arrow(length = unit(0.02, "npc"), type="closed"),colour = "#77621D", size = 0.5, angle = 0)+annotate("text", x= 1.183, y= 10.4 , label="3 SNPs",size=4)+ #Pageom_curve(aes(x = 0.952, y = 9, xend = 1.941, yend = 9),arrow = arrow(length = unit(0.02, "npc"), type="closed"),colour = "#5F8744", size = 0.5, angle = 0)+annotate("text", x= 1.359, y= 9.4 , label="16 SNPs",size=4)+ #Gasgeom_curve(aes(xend = 0.821, y = 8, x = 1.029, yend = 8),arrow = arrow(length = unit(0.02, "npc"), type="closed"),colour = "#5F8744", size = 0.5, angle = 0)+annotate("text", x= 0.919, y= 8.4 , label="8 SNPs",size=4)+ #Gatgeom_curve(aes(x = 0.932, y = 7, xend = 1.078, yend = 7),arrow = arrow(length = unit(0.02, "npc"), type="closed"),colour = "#1D7CBA", size = 0.5, angle = 0)+annotate("text", x= 1.002, y= 7.4 , label="81 SNPs",size=4)+ #IBgeom_curve(aes(x = 1.000, y = 6, xend = 1.138, yend = 6),arrow = arrow(length = unit(0.02, "npc"), type="closed"),colour = "#1D7CBA", size = 0.5, angle = 0)+annotate("text", x= 1.067, y= 6.4 , label="48 SNPs",size=4)+ #UCgeom_curve(aes(xend = 0.936, y = 5, x = 1.053, yend = 5),arrow = arrow(length = unit(0.02, "npc"), type="closed"),colour = "#1D7CBA", size = 0.5, angle = 0)+annotate("text", x= 0.993, y= 5.4 , label="65 SNPs",size=4)+ #CDgeom_curve(aes(x = 0.638, y = 4, xend = 2.763, yend = 4),arrow = arrow(length = unit(0.02, "npc"), type="closed"),colour = "#1D7CBA", size = 0.5, angle = 0)+annotate("text", x= 1.327, y= 4.4 , label="5 SNPs",size=4)+ #ISgeom_curve(aes(x = 0.942, y = 3, xend = 1.170 , yend = 3),arrow = arrow(length = unit(0.02, "npc"), type="closed"),colour = "#828282", size = 0.5, angle = 0)+annotate("text", x= 1.050, y= 3.4 , label="10 SNPs",size=4)+ #Apgeom_curve(aes(xend = 0.609, y = 2, x = 1.616, yend = 2),arrow = arrow(length = unit(0.02, "npc"), type="closed"),colour = "#828282", size = 0.5, angle = 0)+annotate("text", x= 0.992, y= 2.4 , label="8 SNPs",size=4)+ #PUgeom_curve(aes(x = 0.779, y = 1, xend = 1.459, yend = 1),arrow = arrow(length = unit(0.02, "npc"), type="closed"),colour = "#828282", size = 0.5, angle = 0)+annotate("text", x= 1.066, y= 1.4 , label="80 SNPs",size=4)+ #GE#scale_x_continuous(limits = c(0.8, 2.5))+geom_vline(aes(xintercept=0.6), colour="grey50", linetype="dashed", size=0.3)+geom_vline(aes(xintercept=0.7), colour="grey50", linetype="dashed", size=0.3)+geom_vline(aes(xintercept=0.8), colour="grey50", linetype="dashed", size=0.3)+geom_vline(aes(xintercept=0.9), colour="grey50", linetype="dashed", size=0.3)+geom_vline(aes(xintercept=1), colour="black", linetype="dashed", size=0.3)+geom_vline(aes(xintercept=1.1), colour="grey50", linetype="dashed", size=0.3)+geom_vline(aes(xintercept=1.2), colour="grey50", linetype="dashed", size=0.3)+geom_vline(aes(xintercept=1.3), colour="grey50", linetype="dashed", size=0.3)+geom_vline(aes(xintercept=1.4), colour="grey50", linetype="dashed", size=0.3)+geom_vline(aes(xintercept=1.5), colour="grey50", linetype="dashed", size=0.3)+geom_vline(aes(xintercept=1.6), colour="grey50", linetype="dashed", size=0.3)+geom_vline(aes(xintercept=1.7), colour="grey50", linetype="dashed", size=0.3)+geom_vline(aes(xintercept=1.8), colour="grey50", linetype="dashed", size=0.3)+geom_vline(aes(xintercept=1.9), colour="grey50", linetype="dashed", size=0.3)+geom_vline(aes(xintercept=2.0), colour="grey50", linetype="dashed", size=0.3)+geom_vline(aes(xintercept=2.1), colour="grey50", linetype="dashed", size=0.3)+geom_vline(aes(xintercept=2.2), colour="grey50", linetype="dashed", size=0.3)+geom_vline(aes(xintercept=2.3), colour="grey50", linetype="dashed", size=0.3)+geom_vline(aes(xintercept=2.4), colour="grey50", linetype="dashed", size=0.3)+geom_vline(aes(xintercept=2.5), colour="grey50", linetype="dashed", size=0.3)+geom_vline(aes(xintercept=2.6), colour="grey50", linetype="dashed", size=0.3)+geom_vline(aes(xintercept=2.7), colour="grey50", linetype="dashed", size=0.3)+geom_vline(aes(xintercept=2.8), colour="grey50", linetype="dashed", size=0.3)
http://www.jmfq.cn/news/4919581.html

相关文章:

  • 公司网站封面怎么做/惠州seo招聘
  • 招商门户网站建设方案/怎么做app推广代理
  • 济南专业做网站公司/网站排名优化的技巧
  • 网站建设营业执照如何写/苏州网站建设开发公司
  • 外贸企业做网站/好的营销网站
  • 做网站要学哪些程序/关键词排名查询官网
  • 涂料网站建设/九江seo
  • 作文网址/网站怎样优化文章关键词
  • 网站首页下拉广告/企业站seo案例分析
  • 专做宝宝辅食的网站/seo专家招聘
  • 北京行业网站制作/网站排名软件
  • pc网站建设建站模板/百度竞价恶意点击软件
  • app拉新渠道/江苏seo平台
  • 保定电子网站建设/电池优化大师下载
  • 国外网站大牛不懂英语可以做吗/青岛官网seo方法
  • 网站后续建设/有什么平台可以推广
  • 有哪些做批发出口的网站/2023年新闻热点事件
  • seo培训费用/自己怎么优化关键词
  • 做网站个体户执照/谷歌优化推广
  • 中纪委网站两学一做征文/西安网红
  • 河北先进网站建设风格/seo到底是什么
  • 可以和外国人做朋友的网站/竞价推广托管服务
  • 做网站用boot/搜索app下载安装
  • 手机企业网站制作/网站优化提升排名
  • 中央政府网站的建设的意见/百度下载软件
  • 做外贸网站能用虚拟主机吗/中小企业网站优化
  • 大学物流仓储作业代做网站/政府免费培训 面点班
  • 西安最新公告/网站如何做关键词优化
  • 网站开发公司徐州/产品推广计划
  • 南京网站设计制作/常见的网络推广方法有哪些