【发布时间】:2020-05-06 21:47:31
【问题描述】:
只要我不尝试更改图例的位置,我的情节就可以正常工作。 (我正在绘制一个 GeoDataFrame。)
# %%
ax = NE_shp.plot(column=NE_shp.iloc[:,4], figsize=(10,3), scheme='quantiles', edgecolor='k', k=10, legend=True)
#ax.legend(loc='upper left', bbox_to_anchor=(1, 1)) #This is the line for relocating legend
ax.set_title('The Map', fontsize=16)
ax.axis('off')
但是当我使用现在被屏蔽的行作为注释来更改图例位置时,它会给出以下错误并且图例未显示如下图
No handles with labels found to put in legend.
(我怀疑它是否与 scheme='quantiles' 有关,因为它不是 matplotlib 固有的,而是由 pySAL 添加的。)
非常感谢您的建议。
【问题讨论】:
-
Get them before trying to move It -
handles, labels = x.get_legend_handles_labels(); ax.legend(handles, labels) -
@wwii 如果可行,也可以致电
ax.legend,对吗?或者反过来说,因为ax.get_legend_handles_labels返回一个空列表,ax.legend()不会产生图例。 -
@ImportanceOfBeingErnest ......嗯,我想这是有道理的。使用玩具 DataFrame,OP 的代码可以工作。
-
@wwii 即使使用玩具数据框,它也无法开箱即用。见下文。
-
@ImportanceOfBeingErnest .. 抱歉正在使用 Pandas DataFrame 来查看可能发生的情况。
标签: python matplotlib legend geopandas