2016-10-31 116 views
2

輪郭グラフのカラーバーの範囲を0から0.12に編集しようとしていますが、いくつか試みましたが効果がありません。フルカラーバーの範囲を0.3にまで引き上げています。これは私が望むものではありません。Matplotlib Contour GraphのカラーバーのPython最小値と最大値範囲

これは私のコードです:

import numpy as np 
import matplotlib.pyplot as plt 
import matplotlib.tri as tri 
triang = tri.Triangulation(x, y) 

plt.tricontour(x, y, z, 15, colors='k') 

plt.tricontourf(x, y, z, 15, cmap='Blues', vmin=0, vmax=0.12,\ 
       extend ='both') 
plt.colorbar() 

plt.clim(0,0.12) 

plt.ylim (0.5,350) 

plt.xlim(-87.5,87.5) 

plt.show() 

のx、y、zはあなたがここで私のグラフを見てみることができますつの列と行

の数が多いと、すべての配列です:

enter image description here

助けてください!

+0

申し訳ありませんが生成されますが、そのモジュールは、このですか?それはmatplotlibですか?より良い応答を得るには、そのタグを付けてください – AbdealiJK

+0

はい、私はそれを追加していただきありがとうございますmatplotlibです。 (初めて質問を投稿する!) – Fatma90

+0

x、y、zとは何ですか? – DavidG

答えて

0

私は質問が本当に有効だと思います。 @ Fatma90:あなたのケースにx、y、zを入力して、実例を提示する必要があります。

とにかく、いくつかの値を自分で作り出すことができます。だから問題は、vminとvmaxは単にplt.tricontourf()によって無視され、私はそのための良い解決策を知らないということです。しかし、ここで

は、ここではきれいに見えます10個の異なるレベルを、使用して手動で levels

plt.tricontourf(x, y, z, levels=np.linspace(0,0.12,11), cmap='Blues') 

を設定し、回避策です(問題はレベルの異なる数が使用されている場合には、素敵な目盛りを持っているかもしれません)。

私は効果を確認するために実施例を提供します。

import numpy as np 
import matplotlib.pyplot as plt 

#random numbers for tricontourf plot 
x = (np.random.ranf(100)-0.5)*2. 
y = (np.random.ranf(100)-0.5)*2. 
#uniform number grid for pcolor 
X, Y = np.meshgrid(np.linspace(-1,1), np.linspace(-1,1)) 

z = lambda x,y : np.exp(-x**2 - y**2)*0.12 

fig, ax = plt.subplots(2,1) 

# tricontourf ignores the vmin, vmax, so we need to manually set the levels 
# in this case we use 11-1=10 equally spaced levels. 
im = ax[0].tricontourf(x, y, z(x,y), levels=np.linspace(0,0.12,11), cmap='Blues') 
# pcolor works as expected 
im2 = ax[1].pcolor(z(X,Y), cmap='Blues', vmin=0, vmax=0.12) 

plt.colorbar(im, ax=ax[0]) 
plt.colorbar(im2, ax=ax[1]) 

for axis in ax: 
    axis.set_yticks([]) 
    axis.set_xticks([]) 
plt.tight_layout() 
plt.show() 

これは

enter image description here

+0

ありがとうございました! :) – Fatma90

関連する問題