2016-07-05 2 views
2

Я рисую несколько строк на одном участке, и я хочу, чтобы они пробегали по спектру цветовой карты, а не только по тем же 6 или 7 цветам. Код сродни этому:Matplotlib Plot Lines with Colors Through Colormap

for i in range(20): 
    for k in range(100): 
      y[k] = i*x[i] 
    plt.plot(x,y) 
plt.show() 

Оба с палитрой «струей», а другой, что я импортировал из Сиборна, я получаю те же 7 цветов повторяются в том же порядке. Я хотел бы иметь возможность составлять до 60 разных строк, все с разными цветами.

ответ

5

Цветовые карты Matplotlib принимают аргумент (0..1, скаляр или массив), который вы используете для получения цветов из цветовой карты. Например:

col = pl.cm.jet([0.25,0.75])  

Дает массив (два) RGBA цвета:

массив ([[0, 0,50392157, 1., 1.], [1, 0,58169935, 0, 1]])

Вы можете использовать, чтобы создать N различные цвета:

import numpy as np 
import matplotlib.pylab as pl 

x = np.linspace(0, 2*np.pi, 64) 
y = np.cos(x) 

pl.figure() 
pl.plot(x,y) 

n = 20 
colors = pl.cm.jet(np.linspace(0,1,n)) 

for i in range(n): 
    pl.plot(x, i*y, color=colors[i]) 

enter image description here

Смежные вопросы