2017-08-01 12 views
2

私はシーボーンを使っていくつかの生物学データをプロットしています。私はグラフが私に素敵な線形フィット感とPearsonRとAを与えることを好きSeaborn:ちょうどログスケールが必要です

私はちょうど別のものに対して分布一つの遺伝子(〜300患者における式)を求めており、それがすべてだがgraph = sns.jointplot(x='Gene1',y='Gene2',data=data,kind='reg')

で結構な働きましたP値。

One of my graphs.

私が欲しいのは、このような遺伝子データは通常、表現されている方法である対数スケール、上の私のデータをプロットすることです。

私はいくつかのソリューションをオンラインで見たことがありますが、それらはすべて私のPearsonR値または私の線形フィットを取り除くか、単に良く見えません。私はこれに新しいですが、それはあまりにも多くの問題ではないログスケールでグラフを作成するようだ。

コメントや解決方法はありますか?

ありがとうございます!

編集:コメントに応じて、私は私の答えに近づきました。私は今、プロットを持っています(下に示されています)が、私はフィット感と統計を行う必要があります。今はそれに取り組んでいますが、それまでの回答や提案は大歓迎です。

Progress

+0

試して拒否した解決策はありますか? – LangeHaare

+0

私はこれを見ました:https://stackoverflow.com/questions/26059979/log-log-plot-with-seaborn-jointgrid しかし、その解決策を試してみると、私は自分のデータのための平らな線を得ましたか?私は何がうまくいかなかったのかどうかはわかりませんでしたが、私がとにかく望んでいた統計はありませんでした。 – CalendarJ

+1

ここでプロットを呼び出す前に軸を設定しようとしましたか? https://stackoverflow.com/a/40633595/8131703 – LangeHaare

答えて

1
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)に変換することにしました。そのため、グラフを短時間で拡大して視覚化しやすくなりました。

関連する問題