生物学のデータをプロットするためにseabornを使用しています。
私は、ある遺伝子を別の遺伝子に対して分布させたいだけです(約300人の患者での発現)。これは、すべてうまく機能し、graph = sns.jointplot(x='Gene1',y='Gene2',data=data,kind='reg')
でうまくいきます。
私はグラフが私に素晴らしい線形適合とピアソンRとP値を与えるのが好きです。
私が欲しいのは、データを対数スケールでプロットすることだけです。これは、そのような遺伝子データが通常表現される方法です。
私はいくつかのソリューションをオンラインで見てきましたが、それらはすべて私のPearsonR値または私の線形適合を取り除いてしまうか、見た目があまり良くありません。私はこれが初めてですが、対数スケールでのグラフ化はそれほど面倒ではないようです。
コメントや解決策はありますか?
ありがとう!
編集:コメントに応じて、私は私の答えに近づきました。これでプロット(下に表示)ができましたが、適合線といくつかの統計を行う必要があります。今はそれに取り組んでいますが、それまでの回答/提案は大歓迎です。
_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)
に変換することにしました。これにより、グラフのスケーリングと短期間の視覚化が容易になります。