【发布时间】:2021-03-23 12:55:27
【问题描述】:
我想创建一个 Contour-Enhanced 漏斗图(不是漏斗图),以测试 meta 分析中的小型研究效果,如下所示:
上面的情节是在 R 中创建的,它有几个包可以做到这一点。但是,我想使用 matplotlib 和 pandas 在 Python 中创建它。我怎样才能做到这一点? 我已经尝试过 Pythonmeta 包并得到了这个漏斗图
这是包的源代码:
def __init__(self,size=[6,6],dpi=80): #set figure
self.size=size #inchs
self.dpi=dpi #default:80pts
self.title="Meta-analysis Results "
self.nototal=False
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False
logger.info("Load Fig().")
def funnel (self,effs):
myfig = Fig_Funnel (self.size,self.dpi,effs)
return myfig```
def Fig_Funnel (size,dpi,effs):
myfig = plt.figure(linewidth=1,figsize=size,dpi=dpi)
myfig.set_size_inches(size)
x=[];y=[]
for i in range(1,len(effs)):
x.append(effs[i][1])
y.append(effs[i][6])
lbl,=plt.plot(x,y,"o", lw=1)
ymax=max(y)+0.2
plt.ylim(ymax,0)
plt.plot([effs[0][1],effs[0][1]],[0,ymax],color="blue", linestyle="--",
lw=1)
plt.plot([effs[0][1],effs[0][1]-1.96*ymax],[0,ymax],color="blue",
linestyle="--", lw=1)
plt.plot([effs[0][1],effs[0][1]+1.96*ymax],[0,ymax],color="blue",
linestyle="--", lw=1)
ax = gca()
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
ax.xaxis.set_ticks_position('bottom')
ax.yaxis.set_ticks_position('left')
plt.xlabel("Effect Size")
plt.ylabel("Standard Error")
myfig.tight_layout()
return myfig
【问题讨论】:
-
嗨 Safoora,请告诉我们您到目前为止所做的尝试以及源图是如何创建的,例如向我们展示代码和数据。人们很乐意提供帮助,但不想做你的工作
-
感谢您的评论。我不希望任何人做我的工作。我搜索了很多包以在 Python 中创建漏斗图但没有任何包。我只是想要一些身体给我一个线索并告诉我是否可能。我已经尝试了 Pymeta 包进行元分析,它产生了一个简单的漏斗图,我试图更改源代码但无法更改它以给我一个轮廓增强漏斗图
-
@dube 我觉得我沟通不好
-
@dube 嗨。我应该添加更多详细信息吗?
-
嘿萨福拉。对不起,这不是我的话题,我帮不了你。这样就更好了,谁知道呢
标签: python python-3.x matplotlib plot