2017-03-01 19 views
0

matplotlibで2つの図のサブプロットを作成し、両方に水平線を追加したいと思います。これはおそらく基本的なものですが、最初の図で線の1つを描く方法を指定する方法はわかりませんが、どちらも最後の図で終わります。例えばパンダプロット機能が行うようmatplotlibのサブプロットに行を追加する

import pandas as pd 
import matplotlib.pyplot as plt 
import numpy as np 
%matplotlib inline 

s1= pd.Series(np.random.rand(10)) 
s2= pd.Series(np.random.rand(10)) 

fig, axes = plt.subplots(nrows=2,ncols=1) 

f1= s1.plot(ax=axes[0]) 
l1=plt.axhline(0.5,color='black',ls='--') 
l1.set_label('l1') 

f2= s1.plot(ax=axes[1]) 
l2=plt.axhline(0.7,color='red',ls='--') 
l2.set_label('l2') 

plt.legend() 

subplot with horizontal lines

axhlineは、引数として "斧" を持っていません。だから、これは動作します:

l1=plt.axhline(0.5,color='black',ls='--',ax=axes[0]) 

を私はmatplotlibの中the examplesを読んで、私は私がで線を描画するために行う必要がありますどのようにいずれか(おそらく正当な理由のために)動作しません。この他のオプション

axes[0].plt.axhline(0.5,color='black',ls='--') 

てみましたサブプロット?理想的には伝説ありがとう!

+1

あなたは[0] .axhline(0.5、色= 'ブラック'、LS = ' - ') '軸を試してみましたか'?これはうまくいくはずです。 –

+0

はい!ありがとう@NickBecker!私は2つのサブプロットに現れる伝説の問題を修正する必要があります:-)。私はそれが少しばかだと気づくので、私は質問を消すかもしれません。 – Nabla

答えて

0

@ニック・ベッカーの助けを借りて私は自分の "構文"の質問に答えました。

import pandas as pd 
import matplotlib.pyplot as plt 
import numpy as np 
%matplotlib inline 


s1= pd.Series(np.random.rand(10)) 
s2= pd.Series(np.random.randn(10)) 

fig, axes = plt.subplots(nrows=2,ncols=1) 

f1= s1.plot(ax=axes[0],label='s1') 
l1=axes[0].axhline(0.5,color='black',ls='--') 
l1.set_label('l1') 

axes[0].legend(loc='best') 

f2= s1.plot(ax=axes[1],label='s2') 

l2=axes[1].axhline(0.5,color='black',ls='--') 

l2.set_label('l2') 

axes[1].legend(loc='best') 

subplots with horizontal lines

関連する問題