等高線プロットに含まれる特定のデータセットを視覚化するときに問題があります。問題は、Z値の範囲が約2から0までのデータポイント(X、Y、Z)の束があることです。興味深い機能の多くは0から0.3の範囲にあります。通常のスケーリングを使用して、この画像に示されるように、彼らは、参照するのが非常に困難である:今Python Matplotlib等高線プロットの非線形スケーリング
、私はどうする他に何について考えています。もちろん、対数スケーリングがありますが、最初に何らかのマッピングについて考えなければなりません。それをどうやって行うのか100%確信していません。 this questionに触発されて、その質問で合理的にうまく機能したタイプscaling(x) = Log(x/min)/Log(max/min)
のマッピングを考えることができました。
また、興味深いのは、discussed hereでした。
ArcSinh
スケーリング機能を使用していました。それは小さなフィーチャを全体に比例して非常によく拡大するように見えました。
私の質問は私が推測するように2倍です。
はどのようにして小振幅の特徴は外れ値によって吹き飛ばさ取得しないように私の等高線プロットでデータをスケーリングでしょうか?
上記の方法のいずれかを使用するか、全く異なるものを使用しますか?
は、私は、Pythonにかなり新しいですし、私は常にそこに既にあるすべてのものに驚いていますので、私は、私は上記のものよりも優れている方法で構築さがあるかもしれないと確信しています。私はdatafile hereをアップロード完全性については
(アップロードサイトはrobustfiles.com、迅速なGoogle検索は、私に言っているが、これらのようなものを共有するための信頼できるウェブサイトです)
私は
data = np.load("D:\SavedData\ThreeQubitRess44SpecHighResNormalFreqs.npy")
fig, (ax1) = plt.subplots(1,figsize=(16,16))
cs = ax1.contourf(X, Y, data, 210, alpha=1,cmap='jet')
fig.colorbar(cs, ax=ax1, shrink=0.9)
ax1.set_title("Freq vs B")
ax1.set_ylabel('Frequency (GHz)'); ax1.set_xlabel('B (arb.)')
で上記のプロット
を壊すことにより、2つの別々の領域にプロットを破るためにある、あなたは、例えば6.2 GHzおよび-0.6 B.周りのいくつかの機能をこれは私がしたいのですが何かされて見ることができますより明示的にする。 – user129412