gpt4 book ai didi

python - 将注释和图例保留在同一个 seaborn 图中

转载 作者:太空宇宙 更新时间:2023-11-03 14:30:19 32 4
gpt4 key购买 nike

我正在使用seaborn来生成一些数字。

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

最后,我需要添加图例并注释该图。我愿意:

...
g.ax_joint.legend(...)
...
g.annotate(scipy.stats.spearmanr,fontsize=14)

但是在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()

enter image description here

关于python - 将注释和图例保留在同一个 seaborn 图中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47348605/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com