2016-09-21 8 views
0

私はこの実験に基づいて少しシミュレーションを作成しています: https://www.youtube.com/watch?v=plVk4NVIUh8これは時間の経過に伴う細菌の進化を示しています。 100生成後、細菌スプレッドとしてシミュレーションを表示するmatplotlibカラーマップを調整する

enter image description here

、非占有空間のコントラストが少なくなる:

Iは、ペトリ皿の縁でランダム抵抗を有するいくつかのバクテリアを初期化していますそれはこのようになった: enter image description here

私は細菌の抵抗値(常に0より大きく)と、地図が2D numpyの配列で絵を作るためにplt.matshow(地図)を使用し、非占有スペースは次のように表されます0私は別のカラーマップを試しましたしかし、それは助けにはなりませんでした。私の目的は、占有されていないスペースを一定の暗い色にすることです。 異なる抵抗値に気付くためにconrtastを使用して感染したスペースを明るい色にします。

あなたは私を助けることができますか?

+0

'colorbar'を試してみてください。手動で 'vmin/vmax'を設定しなければならないかもしれません。 'matshow'はフードの下で[' imshow'](http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.imshow)を使います。代わりに['pcolormesh'](http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.pcolormesh)を使用することを検討してください。 –

答えて

0

私はlogaritmic正規化を使用して、より良いvisulaizationを作ることができた:さんは私のbacteriaMapが本当に違うresistancevaluesを持っているとしましょう:

import numpy as np 
import matplotlib.pyplot as plt 
import matplotlib as mpl 

size=10 
a = rand(size, size) * 0.2 
b = rand(size, size) * 2 
c = rand(size, size) * 20 
sumMap = np.concatenate((a,b,c), axis=1) 

sumMapは、小、中と大きな数字で、プロットするnumpyの配列です。私はこのような正規化に地図loksを使用する場合は

maxval=np.max(sumh) 
minval=np.min(sumh) 
colormap = plt.get_cmap('magma') 
norm = mpl.colors.LogNorm(vmax=maxval, vmin=minval) 

img = plt.pcolormesh(sumh, cmap=colormap, norm=norm) 
img.figure.show() 

enter image description here

私がいない場合は、次のカラーマップと正規化を構築

img = plt.pcolormesh(sumh, cmap=cmap, ) 
img.figure.show() 

enter image description here

1

Andreasが 'vmin'値を示唆したように、 'magma'やdefineのように低い値の暗い色でcolormapを得ることができます。例えば

import matplotlib.pyplot as plt 
from scipy import rand 

a = rand(10, 20) + 0.5 
a[0, 0] = 0 
cmap = plt.get_cmap('magma') 
img = plt.pcolormesh(a, cmap=cmap, vmin=0,) 
img.figure.show() 

enter image description here

乾杯! S

+0

おかげさまで、vminを使って、vmaxの値が私を大きく助けましたが、実際の対価は対数正規化でした – user3598726

関連する問題