2013-04-17 8 views
11

커브의 색상이 다른 변수 T의 값에 의존하는 (x, y) 평면에 커브를 플롯하고자합니다. x는 1D numpy 배열이고, y는 1D numpy 배열입니다.Matplotlib은 계속해서 색상을 변경하는 단일 선을 그려야합니다.

T=np.linspace(0,1,np.size(x))**2 
fig = plt.figure() 
ax = fig.add_subplot(111) 
ax.plot(x,y) 

난 T 값 (T 중 하나 개의 값이 모든 (x, y)는 한 쌍의 존재)에 따라 (RdBu 색상 맵을 사용하여) 회선이 파란색에서 빨간색으로 변경할.

이걸 발견했는데 간단한 예제로 왜곡하는 법을 모르겠습니다. 필자의 예제에서 linecollection을 어떻게 사용합니까? http://matplotlib.org/examples/pylab_examples/multicolored_line.html

감사합니다.

+1

도움이된다? 두 번째 예제 플롯의 문제점은 무엇입니까? 우리가 당신을 도울 수 있도록 문구를 분명히하십시오. –

답변

4

하나 개의 아이디어는 색을 이용하여 색을 설정할 수 있었다 = (R, G는, B) 다음, R, G 또는 B 중 어느 하나 (또는 ​​조합)

import pylab as plt 
import numpy as np 

# Make some data 
n=1000 
x=np.linspace(0,100,n) 
y=np.sin(x) 

# Your colouring array 
T=np.linspace(0,1,np.size(x))**2 
fig = plt.figure() 
ax = fig.add_subplot(111) 

# Segement plot and colour depending on T 
s = 10 # Segment length 
for i in range(0,n-s,s): 
    ax.plot(x[i:i+s+1],y[i:i+s+1],color=(0.0,0.5,T[i])) 
을 N 세그먼트로 플롯을 분할하고 연속적으로 변할

희망이 당신이 시도 무엇

그렉

+0

이것은 완벽하게 작동합니다. 정말 고마워! – Cokes

+0

@ 코크스이 문제가 해결 된 경우 받아 들여야합니다 (왼쪽의 큰 체크 표시). – tacaswell

+0

'LineCollection'으로 조금 더 잘할 수 있습니다. – tacaswell

관련 문제