Установка местоположения легенды в matplotlib (при использовании геопанд)

Я пробовал несколько разных способов изменить положение легенды моего сюжета, но ни один из них не сработал. Я хотел бы установить положение, например, в верхнем левом или верхнем правом углу.

У меня есть GeoDataFrame (data_proj), в котором есть полигоны. Я хочу построить только одну карту с этими полигонами.

Я создал свой сюжет следующим образом:

   p = data_proj.plot(column = "Level3", linewidth=0.03, legend = True)

Я использовал их, чтобы установить заголовок и т. д. для легенды:

  leg = p.get_legend()
  leg.set_title("Land cover")
  leg.get_frame().set_alpha(0)

Как я могу изменить местоположение легенды?


person Lia A    schedule 14.01.2018    source источник
comment
Было бы полезно иметь доступный минимальный воспроизводимый пример, чтобы дать правильный код в качестве решения.   -  person ImportanceOfBeingErnest    schedule 14.01.2018


Ответы (2)


В мастере geopandas (т. е. изменение, внесенное после текущего выпуска 0.3.0) в метод plot был добавлен аргумент legend_kwds. Затем можно сделать следующее:

ax = df.plot(column='values', categorical=True, legend=True, legend_kwds={'loc': 2})
person jdmcbr    schedule 15.01.2018

В принципе настройка легенды должна работать как обычно. Параметр loc можно использовать для определения местоположения легенды.

p = data_proj.plot(column = "Level3", linewidth=0.03)

leg = p.legend(loc="upper right")
leg.set_title("Land cover")
leg.get_frame().set_alpha(0)
person ImportanceOfBeingErnest    schedule 14.01.2018