2016-12-26 7 views
1

matplotlibを使ってMandelbrotをプロットしようとしています。私は1つの色でそれをやったが、今私は反復の数に応じていくつかのcmapを入れようとしている。matplotlibのCmap Python

import random 
import matplotlib.pyplot as plt 


elem = 10000 
x = [] 
y = [] 
colors = [] 

def iteration(x): 
    n = 0 
    result = 0 
    while n < 1000: # max iterations 
     result = pow(result, 2) + c 
     if abs(result) > 2: 
      return n   
     n += 1 
    return n 

for i in range(elem): 
    c = complex(random.uniform(-2.5,1),random.uniform(-1.5,1.5)) 
    x.append(c.real) 
    y.append(c.imag) 
    colors.append(iteration(c)) 


plt.scatter(x, y, ',', c = colors, cmap= 'magma', vmin = 0, vmax = 1000) 
plt.axis('equal') 
plt.axis([-2,1,-1.5,1.5]) 
plt.title('Mandelbrot Set', y = 1.05) 
plt.ylabel('Im') 
plt.xlabel('Re') 
plt.colorbar() 
plt.show() 

私はplt.scatterでC、VMINとVMAXを定義する方法を確認していない:だから、私のコードは次のようになります。たとえば、nが1000(最大反復)の黒い点とn = 0の場合の別の色であるとします。

+0

この例を見てhttp://matplotlib.org/devdocs//examples/showcase/mandelbrot.html – Serenity

答えて

0

私はあなたのコードがうまく動作すると思います。マーカーを定義するだけです。

plt.scatter(x, y, marker=',', c = colors, cmap= 'magma', vmin = 0, vmax = 1000) 

enter image description here

関連する問題