2016-06-22 1 views
1

나는 각각의 자신 만의 스타일 제공, 현재 자전거 타는 사람의 세 단계를 통해 세 가지 한 가지의 행,하기 matplotlib 샘플을 플롯 :플롯 여러 번 라인,하지만 현재의 모든 자전거 타는 사람의 상태에 따라

In [11]: x = linspace(0, 5, 50) 

In [12]: y = vstack([x**2, x**3, x**4]).T 

In [13]: plot(x, y) 
Out[13]: 
[<matplotlib.lines.Line2D at 0x7edfa9144550>, 
<matplotlib.lines.Line2D at 0x7edfa9144b38>, 
<matplotlib.lines.Line2D at 0x7edfa9144cf8>] 

I을 plot(x, y, color="black")으로 모두 같은 색상으로 만들 수 있습니다. 그러나, 나는 그들을 모두 검게하고 싶지 않다. 각 줄은 현재 (다음)주기를 존중해야합니다.

current state 받기는 기껏해야 번거 롭습니다. 나는 x을 확장하여 같은 스타일로 세 가지를 모두 얻을 수 y을 평평하게 수 :

In [54]: plot(vstack([x]*3).ravel(), y.T.ravel()) 

을하지만이 세 가지를 연결하는 가짜 라인을 만들 것이다, 그래서 만 표시하지만 선을 그리는 플롯 스타일로 작동합니다.

matplotlib에게 동일한 사이클 상태를 사용하여 여러 줄을 그려보고 싶다는 즐거운 방법이 있습니까? 현재 상태 얻기를 통해

답변

1
여기

: (. 너무 복잡 즐거운,하지만하지 않음)를

In [94]: plt.plot(x, y[:,1:], c=plt.plot(x, y[:,0])[0].get_c()) 
+0

창조! 이것은 또한'label = x'을 사용할 때 올바른 범례 엔트리를 얻는 방법 인 다른 도전에 대한 해결책을 제공합니다. – gerrit