2017-10-18 5 views
0

これに近い解決策がいくつか見つかりましたが、私の軸に正しくラベルを付けることができません。私は何か小さいものを欠いている。matplotlibにログデータをプロットするときに線形のy軸スケーリングを保存する

私は放射性減衰曲線を直線としてプロットしています。

私は、データの2つのリストを持っている、と私は予想通りy軸はnp.log(活動)として出てくるscatter(hours,np.log(activity),color='red')

を使用してプロットが、線形プロットを維持しながら、私はそれだけの活動にしたいです。

を使ってa.yaxis.set_major_formatter(ticker.FormatStrFormatter("%d"))私は何でも好きなものにチックのラベルを変更できますが、ティックのラベルにリストを割り当てることはできません。たとえば、%dをactivity [0]に置き換えた場合、すべてのティックはその値をとります。

ここで私は何をしようとしているのかがはっきりしていることを願っています。

ここで私は、y軸を乗算されてやりたいすべてがnp.expでダニ

(Y-ティック)

歓声

参照プロット

答えて

1

私はscatter(hours, activity)をプロットしますログスケールでそれを得るにはax.set_yscale('log')、最後にax.set_major_formatter(ScalarFormatter())とし、目盛りのラベルを通常の数字(デフォルトは科学的表記)として表示します。

あなたが本当にlog(activity)(フィッティング目的か何かのために)をプロットしている場合は、あなたの元の質問への答えは次のとおりです。

ax.yaxis.set_major_formatter(FuncFormatter(lambda y, pos: "%.3f"%(np.exp(y)))) 

https://matplotlib.org/api/ticker_api.html#matplotlib.ticker.FuncFormatter

+0

あなたの最初のポイントは、しかし、他の私のオリジナルの方法、だっ見ますフィッティングしていたら、正しく表示されません。ログスケール軸は線形近似を崩します。第2のポイントは、私が探していたソリューション、tyvm! – PatfordS

+0

そのような状況での私のアプローチは、通常、ログデータに線形近似を行い、オリジナルデータの対数スケールプロットにフィットを 'exp(m * x + b)'としてプロットすることです。この他のソリューションがうまくいくのはうれしい! –

関連する問題