Seaborn:我只想要一个对数刻度

Seaborn: I just want a log scale

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

我只想要一个基因与另一个基因的分布(在约 300 名患者中表达),并且 graph = sns.jointplot(x='Gene1',y='Gene2',data=data,kind='reg')

一切都很好,花花公子

我喜欢这个图表给我一个很好的线性拟合和一个 PearsonR 和一个 P 值。

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

我在网上查看了一些解决方案,但它们都去掉了我的 PearsonR 值或我的线性拟合,或者它们看起来不太好。我是新手,但看起来在对数刻度上绘图应该不会太麻烦。

有任何意见或解决方案吗?

谢谢!

编辑:为了回应评论,我已经接近我的答案了。我现在有一个图(如下所示),但我需要一条拟合线并进行一些统计。现在正在努力,但在此期间任何 answers/suggestions 都非常受欢迎。

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')

这很好用。最后,我决定只将我的 table 值转换为 log(x),因为这使得图表更容易缩放和可视化 运行。