2016-11-23 10 views
0

私はcontourfを使ってデータをプロットしていますが、透明度の設定に関しては問題があります。塗りつぶしと線の両方の透明度を設定できるようにしたいが、これを行うことはできない。Matplotlibの透明度の変更/輪郭線の削除

array = np.random.rand(100,100) 

#lonit and latit are latitude and longitude grids from an input dataset 
LONG, LAT = np.meshgrid(lonit, latit) 
longitude,latitude = m(LONG, LAT) 

pp = m.contourf(longitude, latitude, imagelist[0], 50, 
      cmap='YlOrRd', extend="min", alpha = .5) 

plt.show() 

この出力:次のように

私のコードの簡易版であり、αは0.5に設定されているにもかかわらず、enter image description here

とあなたが見ることができるように、輪郭線の透明度は、のままで1.誰もこれを修正して、塗りつぶしと同じ透明性を持つように考えていますか?代わりに輪郭線を削除することもできますが、視覚化が容易になるのでcontourtメソッドが好きです(上記の行を除いて!)

私の目的は、線が複雑になり、したがって、それらを削除する/見えないようにしたい。

ありがとうございます!

UPDATE:複数のグラフは、1.0に設定PROBLEM

アルファを表示する: enter image description here

アルファが0.1に設定さ: enter image description here

アルファを0.6に設定し、Trueに設定アンチエイリアス:

pp = m.contourf(longitude, latitude, imagelist[0], 50, 
cmap='YlOrRd', extend="min", alpha = 0.6, antialiased = True) 

enter image description here

これでラインは改善されましたが、それでもそれらを取り除くことはできませんでした。

+0

'alpha'パラメータは両方の透明度を変更していませんか? – Chr

+0

アルファをもっと下げようとしましたか? – Inconnu

+0

こんにちは、私は違いのアルファレベルを示すより多くの画像で質問を更新しました! - アルファ= 0は、透明度が変更されていることを意味する完全に見えないプロットを生成します。多分輪郭線を取り除く必要があるので、元の質問にこのオプションを追加します。 –

答えて

0

antialiased = Trueを使用してもまだ表示されている行は、塗りつぶした輪郭線が互いに接触しないため、実際には線ではなく背景が輝いています。

1つの非常に醜い修正は同じものを2回プロットすることですが、わずかに異なるレベルで行うことができます。

pp1 = m.contourf(longitude, latitude, imagelist[0], 50, cmap='YlOrRd', extend="min", alpha = 0.3, antialiased = True) 
pp2 = m.contourf(longitude, latitude, imagelist[0], 55, cmap='YlOrRd', extend="min", alpha = 0.3, antialiased = True) 

アルファ値を半分に分けて同じ透明度にする必要があることに注意してください。 それでも行は表示されますが、以前と同じくらい強いわけではありません。

関連する問題