2014-04-10 2 views
0

나는 분명히 뭔가 빠져 있습니다. 제가matplotlib에 행렬의 열을 그릴 때 선 스타일 목록을 순환합니다.

x이다
plot(x,A) 

이 생성 A. lineplots의 행의 수와 동일한 길이를 가진 1D NumPy와 arange에있다하여 단일 호출에서 행렬의 컬럼에 포함 된 데이터를 플로팅있어 matplotlib.rc에 설정된 기본 색상 사이클을 통해 전체 색상 줄이 표시됩니다.

색상주기를 수정할 수 있으며 모든 색상에 대해 단일 색상 및 선형 유형을 가질 수도 있습니다. 그러나 어떻게 라인 스타일 (전체, 점선, 대시 점선, 점선으로 표시)과 색상 (나는 검은 색으로 유지하고 싶지 않음)을 순환시킬 수 있으며 여전히 단순한 단일 플롯 콜을 유지할 수 있습니까?

plot(x,A,['k-','k--','k-.','k:']) 

이 작동하지 않습니다.

+0

: https://stackoverflow.com/a/38986038/321973를 –

답변

0

관련 소스는 class _process_plot_var_args()axes.py에 있으며, 알 수 있듯이 색상주기 만 정의됩니다. 비슷한 린 스타일 사이클은 불가능합니다.

따라서 우리는이 작업을 수행해야합니다 강하게 관련

A=range(10) 
B=np.random.randn(10,12) 
p_list=plt.plot(A, B) 
line_cycle=['-','--','-.',':'] 
_=[l.set_linestyle(st) for l, st in zip(p_list, np.repeat(line_cycle, 1+(len(p_list)/len(line_cycle))))] 

enter image description here

+0

THX (결합 자전거 색상 이는 linestyle을 통해)! 그리고'_ '할당의 사용법을 가르쳐 줘서 기쁩니다. 이는 불필요한 변수를 만들지 않고 생성자 표현식의 간결성을 유지하는 좋은 방법입니다. 나는 그 것을 안다. –