2016-08-16 2 views
1

줄기 라인은 항상 파란색 :스템 플롯의 마커 색상과 일치하도록 줄무늬 색상을 얻으려면 어떻게해야합니까?

import matplotlib.pyplot as plt 
import numpy as np 
x = np.linspace(0.1, 2*np.pi, 10) 

plt.stem(x, np.sin(x), markerfmt='o', label='sin') 
plt.stem(x+0.05, np.cos(x), markerfmt='o', label='cos') 
plt.legend() 

plt.show() 

생산 : stem lines don't match markers

내가 줄기 라인 (두 번째 녹색 첫 번째 데이터 세트에 대한 파란색) 마커의 색상을 일치합니다.

답변

0

이 문제를 해결하는 한 가지 방법은 plt.stem을 호출 한 후 줄줄을 수정하는 것입니다. 우리는 plt.getp(..., 'color')를 사용하여 마커의 색상을 획득하고 줄기 라인에 해당 색상을 지정 plt.setp를 사용할 수 있습니다

x = np.linspace(0.1, 2*np.pi, 10) 

markerline, stemlines, baseline = plt.stem(x, np.sin(x), markerfmt='o', label='sin') 
plt.setp(stemlines, 'color', plt.getp(markerline,'color')) 
plt.setp(stemlines, 'linestyle', 'dotted') 


markerline, stemlines, baseline = plt.stem(x+0.05, np.cos(x), markerfmt='o', label='cos') 
plt.setp(stemlines, 'color', plt.getp(markerline,'color')) 
plt.setp(stemlines, 'linestyle', 'dotted') 

plt.legend() 
plt.show() 

가 생성됩니다

stem lines match the marker

2

는 각 줄기 등의 형식 인수를 추가 할 수 있습니다 너는 plot을 위해 할 것이다. 아래의 plt.stem 전화에서 'b''g' 인수에 유의하십시오.

import matplotlib.pyplot as plt 
import numpy as np 
x = np.linspace(0.1, 2*np.pi, 10) 

#       v---------- add these args 
plt.stem(x,  np.sin(x), 'b', markerfmt='bo', label='sin') 
plt.stem(x+0.05, np.cos(x), 'g', markerfmt='go', label='cos') 
plt.legend() 

plt.show() 

enter image description here

관련 문제