2012-04-03 31 views
4

所以基本上我想知道的是,當我繪製我的試驗圖時,是在我的代碼的底部,是否有通過那裏運行顏色生成器的方法?或者更明確地說,我可以製作一個暖色的列表,並將它放到我的繪圖函數中,當它通過循環時,它通過列表中的每種顏色運行,因此我的繪圖將只包含暖色。我可以在循環中放置換色器嗎?

from numpy import * 
from pylab import show,plot 
from scipy.special import erfinv  
n = 366 #number of days  
ntrials = 5000 
u = random.rand(ntrials) 
v = sqrt(2.)*erfinv(2.*u-1.) 
mu = 0           
sigma = .05        
investment = 1000.    
data = empty((ntrials,n)) 
data[:,0] = investment   
for t in range(n-1): 
    u = random.rand(ntrials) 
    v = sqrt(2.)*erfinv(2.*u-1.) 
    epsilon = v 
    data[:,t+1] = (1. + mu +sigma*epsilon)*data[:,t] 

data2 = data.sum(axis=0) 
woo = data2[-1]/ntrials     
data3 = data2[-1] 
x = linspace(0,n,n) 
for t in range(n): 
    plot(x,data[t,:])  
show() 

回答

14

這聽起來像你只是想要這樣的事情?

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

# Generate data... 
nx, nsteps = 100, 20 
x = np.linspace(0, 1, nx) 
data = np.random.random((nx, nsteps)) - 0.5 
data = data.cumsum(axis=0) 
data = data.cumsum(axis=1) 

# Plot 
cmap = mpl.cm.autumn 
for i, y in enumerate(data.T): 
    plt.plot(x, y, color=cmap(i/float(nsteps))) 

plt.show() 

enter image description here

的關鍵是,調用一個matplotlib colormap的實例與在0和1之間的值將返回一個顏色(其中,0是colormap中最低的顏色和1爲最高)。

有關可用顏色映射的列表,請參閱see here。您可以使用name_r(例如,mpl.cm.autumn的反轉版本爲mpl.cm.autumn_r)訪問任何這些版本的反轉版本。

+0

鏈接不再有效。你可以在這裏找到信息(https://matplotlib.org/users/colormaps.html)。 – Karlo 2018-01-30 14:57:07

相關問題