今天小编给大家介绍的图类型为漏斗图(Funnel Plots),本期就详细介绍该种图表的含义及绘制方法,主要内容如下:
漏斗图(Funnel Plots) 是由Light等于1984年提出,横坐标一般为单个研究的效应量,纵坐标为样本含量的散点图。理论上讲,被纳入Meta分析的各独立研究效应的点估计,在平面坐标系中的集合应为一个倒置的漏斗形,因此称为漏斗图。一般情况下:
漏斗图主要用于观察某个系统评价或Meta分析结果是否存在偏倚,样例图如下:
漏斗图(Funnel Plots)样例
更多关于漏斗图(Funnel Plots)含义介绍,大家可参考:漏斗图(Funnel Plots)介绍[1]
这一部分小编主要介绍多种漏斗图(Funnel Plots)的绘制方法,具体包括R和Python的绘制方法,主要如下:
R-FunnelPlotR包是专门为绘制漏斗图(Funnel Plots) 所构建的绘制包,这里我们介绍例子即可,更多内容可参考:R-FunnelPlotR包[2]。
「样例一」:
plot01 <- funnel_plot(numerator=medpar$los, denominator=medpar$prds, group = medpar$provnum,
data_type="SR", limit=99,
Poisson_limits = TRUE, OD_adjust = FALSE, label_outliers = TRUE)
# 使用plot()函数转换成ggplot2对象,可实现常规ggplot2图层添加
my_plot <- plot(plot01)
my_plot +
labs(
title = "Example of <span style='color:#D20F26'>FunnelPlotR::funnel_plot function</span>",
subtitle = "processed charts with <span style='color:#1A73E8'>funnel_plot()</span>",
caption = "Visualization by <span style='color:#0057FF'>DataCharm</span>") +
hrbrthemes::theme_ipsum(base_family = "Roboto Condensed") +
theme(
plot.title = element_markdown(hjust = 0.5,vjust = .5,color = "black",
size = 20, margin = margin(t = 1, b = 12)),
plot.subtitle = element_markdown(hjust = 0,vjust = .5,size=15),
plot.caption = element_markdown(face = 'bold',size = 12)
)
Example01 Of R-FunnelPlotR funnel_plot()
「样例二」:
plot02 <- funnel_plot(denominator=medpar$prds,numerator=medpar$los
, group = medpar$provnum, limit=99 ,label_outliers = TRUE
, Poisson_limits = TRUE, xrange=c(0, 400), yrange=c(0,2),
plot_cols=pal_jco("default")(4))
my_plot <- plot(plot02)
my_plot +
labs(
title = "Example of <span style='color:#D20F26'>FunnelPlotR::funnel_plot function</span>",
subtitle = "processed charts with <span style='color:#1A73E8'>funnel_plot()</span>",
caption = "Visualization by <span style='color:#0057FF'>DataCharm</span>") +
hrbrthemes::theme_ipsum(base_family = "Roboto Condensed") +
theme(
plot.title = element_markdown(hjust = 0.5,vjust = .5,color = "black",
size = 20, margin = margin(t = 1, b = 12)),
plot.subtitle = element_markdown(hjust = 0,vjust = .5,size=15),
plot.caption = element_markdown(face = 'bold',size = 12)
)
Example01 Of R-FunnelPlotR funnel_plot()
「注意」:由于 R-FunnelPlotR包hi基于ggplot2绘制的,则可以通过plot() 函数对其进行更好的定制化操作(如介绍的例子)
有一种表现形式更加易被理解的漏斗图形式(contour-enhanced funnel plots),这里用到R-metafor包进行绘制,首先,我们构建数据,如下:
library("metafor")
# Load dataset
dat <- get(data(dat.molloy2014))
dat <- escalc(measure="ZCOR", ri=ri, ni=ni, data=dat) #
res <- rma(yi, vi, data=dat)
接下来进行可视化绘制,如下:
# 标准漏斗图(Standard funnel plot)
funnel(res)
#标准contour-enhanced 漏斗图
funnel(res, refline=0, level=c(90, 95, 99),
shade=c("white", "gray", "darkgray"))
#更改colour
funnel(res, refline=0, level=c(90, 95, 99),
shade=c("white", "red", "orange"))
上述结果依次如下:
标准漏斗图(Standard funnel plot)
标准contour-enhanced 漏斗图
更改colour的contour-enhanced 漏斗图
更多 详细例子可参考:R-metafor包绘图介绍[3]
Python绘制类似的图小编也是找到了一个专门绘制的Python库-funnelpy,这里简单进行介绍,更多详细例子大家可参考Python-funnelpy介绍[4]由于是基于matplotlib的第三方包,一些基本的定制化操作是不变的。
「样例如下」:
import funnelpy.funnelpy as fpy
plt.rcParams['font.family'] = "Times New Roman"
fpy.funnelplot(
groups = ['Tony','Mike','Jan','Bob','Sheila','Jeff','Sandy','Mitch','Mary','John'],
samplesizes = [2,400,100,1000,2,10,500,200,10,2],
incidents = [2,224,54,505,1,5,236,92,3,0],
length = 100,
twosigma = True,
threesigma = True,
color_data = '#F79646',
color_mean = '#F79646',
color_threesigma = 'Black',
plt_title = 'Funnel Plot of Successful Sales Conversions',
plt_xlabel = 'Sales Opportunities',
plt_ylabel = 'Successful Sales Conversions',
plt_ylim_min = -0.01,
plt_ylim_max = 1.01,
funnel_size = (8,6)
)
Example Of Python-funnelpy funnelplot()
今天的小编的这篇推文简单汇总了漏斗图(Funnel Plots) 的多种绘制方法(R+Python),希望对大家有所帮助。