2017-11-17 8 views
0

私はいくつかの数字を生成するために海軍を使用しています。注釈と凡例を同一の海軍プロット内に保持

import seaborn as sns 
g=sns.JointGrid(...) 

最後に、凡例を追加してプロットに注釈を付ける必要があります。私は:

しかし、annotate()の後にはもう伝説はありません。どのように同じ図の中の同じax_jointに両方を維持するのですか?

答えて

1

g.annotateは、凡例として注釈情報を追加します。既に凡例があるプロットに新しい凡例を追加すると、古い凡例が置き換えられます。解決策は、古い凡例をプロットに読み込むことです。

oldlegend = plt.legend(<something>) 
newlegend = plt.legend(<something else>) 
plt.gca().add_artist(legend) 

このケースでは、それは

import seaborn as sns 
import pandas as pd 
import numpy as np 
import matplotlib.pyplot as plt 
import scipy.stats 

mydataset=pd.DataFrame(data=np.random.rand(50,2),columns=['a','b']) 
g = sns.JointGrid(x=mydataset['a'], y=mydataset['b']) 
g=g.plot_marginals(sns.distplot,color='black', 
        kde=True,hist=False,rug=True,bins=20) 
g=g.plot_joint(plt.scatter,label='X')   


legend_properties = {'weight':'bold','size':8} 
legendMain=g.ax_joint.legend(prop=legend_properties,loc='upper right') 


legendSide=g.ax_marg_x.legend(labels=["x"], 
           prop=legend_properties,loc='upper right') 
g.annotate(scipy.stats.spearmanr,fontsize=14, loc=4) 
g.ax_joint.add_artist(legendMain) 
plt.show() 

enter image description here

ようになります。
関連する問題