我只想要一根木头

2024-04-27 21:57:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我在用seaborn绘制一些生物学数据。

我只想要一个基因对另一个基因的分布(在大约300个病人中表达),这对graph = sns.jointplot(x='Gene1',y='Gene2',data=data,kind='reg')来说都很有效

我喜欢这个图给了我一个很好的线性拟合,一个PearsonR和一个p值。

One of my graphs.

我只想把我的数据绘制在对数刻度上,这就是基因数据通常的表示方式。

我在网上看过一些解决方案,但它们都摆脱了我的PearsonR值或线性拟合,或者看起来不太好。我是新来的,但似乎用原木比例尺作图不会太麻烦。

有什么意见或解决办法吗?

谢谢!

编辑:作为对评论的回应,我离我的答案越来越近了。我现在有一个图(如下所示),但我需要一行拟合和做一些统计。现在就着手解决这个问题,但在此期间任何答案/建议都是非常受欢迎的。

Progress


Tags: 数据答案data基因绘制线性seaborngraph
1条回答
网友
1楼 · 发布于 2024-04-27 21:57:31
mybins=np.logspace(0, np.log(100), 100)

g = sns.JointGrid(data1, data2, data, xlim=[.5, 1000000],
                  ylim=[.1, 10000000])
g.plot_marginals(sns.distplot, color='blue', bins=mybins)
g = g.plot(sns.regplot, sns.distplot)
g = g.annotate(stats.pearsonr)

ax = g.ax_joint
ax.set_xscale('log')
ax.set_yscale('log')

g.ax_marg_x.set_xscale('log')
g.ax_marg_y.set_yscale('log')

这很管用。最后,我决定将我的表值转换成log(x),因为这使得图形在短期内更易于缩放和可视化。

相关问题 更多 >