2016-06-01 4 views
0

私はmatplotlibライブラリをPythonで使用していますが、カラーマップのディメンションに問題があります。変数xている行とy列の行列である、すなわち私のデータtarget -カラーマップを強制的に正方形にする

は、私は2つの変数xyに依存target変数いくつかの目標を持っています。私はxyに関してカラーマップでtargetを表現したいと思います。問題は、私がのためにより多くの値を持っているからです。の値がyの値よりもずっと多いので、私はカラーマップをプロットすると矩形が得られます。

私はむしろ、正方形の "ピクセル"ではなく、カラーマップと正方形のマップで長方形の "ピクセル"を持ちますが、少なくとも2つの視覚化を比較したいと思います。

私の質問は、カラーマップを正方形にするにはどうすればいいですか?

これは私の現在のコードです - cmap変数は単に私のカスタムカラースケールを定義することができます:

import matplotlib.pyplot as plt 
import matplotlib.pyplot as clr 

target = ... 

cmap = clr.LinearSegmentedColormap.from_list('custom blue', 
              ['#DCE6F1','#244162'], 
              N=128) 
plt.matshow(target, cmap=cmap) 
plt.colorbar(cmap='custom blue') 

答えて

1

Andreasの答えが私のコンピュータで機能します。 imshow()はデフォルトで画像を補間するため、画像はmatshow()とは異なりますので、コードと若干異なる結果が表示されることがあります。しかし、aspectパラメータは両方で動作します。ですから、imshow()で補間を無効にするか、またはmatshow()に補間するか、imshow()で補間を無効にしてください:

fig = plt.figure() 
ax = fig.add_subplot(111) 
ax.matshow(np.random.rand(32, 64), cmap='rainbow', aspect=2) 
plt.show() 

fig = plt.figure() 
ax = fig.add_subplot(111) 
ax.imshow(np.random.rand(32, 64), cmap='rainbow', aspect=2, interpolation="None") 
plt.show() 
1

あなたmatplotlibバージョンは何を?これはあなたに、正方形の図形形状の長方形のピクセルを与える

fig = plt.figure() 
ax = fig.add_subplot(111) 
ax.imshow(np.random.rand(32, 64), cmap='rainbow', aspect=2) 
plt.show() 

enter image description here

:それは1.1.0より新しいなら することは、あなたはこれを試すことができます。 np.random.rand(32, 64)をデータで置き換えて、好きな縦横比を定義する必要があります。また、postを参照してください。あなたが興味を持っている可能性のある他の解決策があります。

関連する問題