0
私はいくつかの数字を生成するために海軍を使用しています。注釈と凡例を同一の海軍プロット内に保持
import seaborn as sns
g=sns.JointGrid(...)
最後に、凡例を追加してプロットに注釈を付ける必要があります。私は:
しかし、annotate()
の後にはもう伝説はありません。どのように同じ図の中の同じax_jointに両方を維持するのですか?
私はいくつかの数字を生成するために海軍を使用しています。注釈と凡例を同一の海軍プロット内に保持
import seaborn as sns
g=sns.JointGrid(...)
最後に、凡例を追加してプロットに注釈を付ける必要があります。私は:
しかし、annotate()
の後にはもう伝説はありません。どのように同じ図の中の同じax_jointに両方を維持するのですか?
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()
ようになります。