我见过Creating multi column legend in python seaborn plot,但我认为我的问题有些不同。简而言之,我有一个要在<!-- templates/book_detail.html -->
{% extends '_base.html' %}
{% block content %}
{% for book in book_list %}
<div>
<h2><a href="{% url 'book_detail' book.get_absolute_url %}">{{ book.title }}</a></h2>
</div>
{% endfor %}
{% endblock content %}
的{{1}}中绘制并得到一个seaborn
的数据框。麻烦的是,lmplot
的值很多,所以我得到了一个超长的单列图例。下面的代码示例:
FacetGrid
我可以访问通过调用hue
创建的图例对象,这将返回一个类型为ers = sns.lmplot(
data=emorb,
x="Pb",
y="Nd",
row="Ridge Sys",
hue="Seg Name",
scatter=True,
fit_reg=False,
scatter_kws={"alpha":0.7, "edgecolor": "w"},
palette=sns.color_palette("bright", 20),
legend=True
)
ers.set(ylim=(0.5122,0.5134))
的对象(基本上是ers._legend
对象)。但是,我无法再调用此图例对象来更改列数,例如,使用:
Legend
有什么建议,或者我是否想念一些更明显的东西,例如重绘图例并指定任何参数的方法?
谢谢。
答案 0 :(得分:0)
哎呀,想通了:
FacetGrid
对象具有属性fig
,即
g = sns.lmplot()
parent_mpl_figure = g.fig
因此,如果我在legend=False
中设置sns.lmplot()
,则可以指定parent_mpl_figure.legend(labels=[], ncol=9, bbox_to_anchor=(1,1))
希望这对其他人/现在很有启发性,以便弄清楚如何使每个Facet
跨满整个调色板,以便每个hue
组中的不同Facet
组更容易区分...