2016-08-16 3 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

I幹線が(第2の緑第一データセットの青)マーカーの色と一致します。

答えて

0

これを解決する1つの方法は、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

関連する問題