2012-12-20 1 views
4

그래서 저는 같은 축에 여러 timeseries의 플롯을 생성하는 2D 데이터 배열을 가지고 있습니다. 지금은 각 라인의 색상이 순환하면서 아무 의미도 없습니다.matplotlib의 선 그래프에 대한 선의 색이 데이터 색인에 따라 다릅니 까?

각 행의 색상을 데이터 인덱스에 매핑하고 싶습니다. 낮은 인덱스의 데이터 집합이 빨간색으로 표시되고 높은 인덱스에서 파란색으로 사라집니다.

명확히하기 위해 각 개별 줄은 전체적으로 같은 색이어야하며 시간이 지나지 않아야합니다. 차이는 각 행 사이에 있어야합니다.

고마워요! 파란색 선


에 대한 레드 라인

plot(x,y,'b')에 대한

답변

8

enter image description here은 종종 당신이 플로팅 기능에 컬러 맵을 통과 제공하지만, 당신은 또한 색상 맵에 숫자 나 배열을 전달하고 반환의 색상을 얻을 수 있습니다.

따라서이 같은 수행 변수에 따라 각 라인 색상을 :

numlines = 20 

for i in np.linspace(0,1, numlines): 
    plt.plot(np.arange(numlines),np.tile([i],numlines), linewidth=4, color=plt.cm.RdYlBu(i)) 

enter image description here

2

plot(x,y,'r') 괜찮은 X'MAS에 대한 더 많은 색상이 필요하십니까? here을 참조하십시오.


UPDATES : 당신이 요청으로

, 수동으로 색상을 설정하기 위해 너무 많은 선이있어. 그래서 이것에 대해 어떻게 :

from matplotlib.pyplot import * 

x = list(range(10)) 
amount = 20 

for i in range(amount): 
    y = [j-i for j in x] 
    c = [float(i)/float(amount), 0.0, float(amount-i)/float(amount)] #R,G,B 
    plot(x, y, color=c) 
show() 

이 제공 : 여기 200 개 가지 색상의 배열을 얻기 위해 RGB 색상을 사용

enter image description here

+0

예를하지만 시계열 세트를 많이 가지고 - 약 200 내가 직접 갈 수 없어 통해 각 하나의 색상을 설정합니다. 인덱스를 가져 와서 컬러 맵에서 색상을 가져 오는 방법이 필요합니다. –

+0

@ 캐서린 조지아. 잠깐. – Skyler

1

. 나는 강도별로 정렬 할 시간이 없지만 어레이의 몇 가지 출력물을 작성하면 어떻게 될지 알아낼 수 있습니다. 아이디어는 (정렬 된) 튜플의 합계 인덱스로 정렬하는 것입니다.

#colorwheel 
import matplotlib.pyplot as plt 
from itertools import permutations 
from random import sample 
import numpy as np 

#Get the color-wheel 
Nlines = 200 
color_lvl = 8 
rgb = np.array(list(permutations(range(0,256,color_lvl),3)))/255.0 
colors = sample(rgb,Nlines) 


#Plots 
x = np.linspace(0,2*np.pi) 

for i in range(Nlines): 
    plt.plot(i*np.cos(x),i*np.sin(x),color=colors[i]) #color from index 
plt.savefig("SO_colorwheel.png") 
plt.show() 

관련 문제