Я начертил региональное распределение годовых данных о поэтапном отказе от угля на карте Южной Кореи с использованием геопанд с 2021 по 2030 год. Оно выглядит следующим образом:
Одна проблема заключается в том, что цветовая шкала для каждого года или подграфика отличается, потому что они основаны на разных столбцах фрейма данных, как показано .
Я хочу иметь единую цветовую шкалу для всех лет и вставить единую легенду. Как я могу иметь единую цветовую шкалу для каждого участка (представляющего каждый год) и как вставить общую легенду для всех участков?
Для общей палитры вам нужно использовать аргументы ключевых слов vmin
и vmax
. Сначала вычислим их.
vmin = min(df[year].min() for year in range(2021, 2027))
vmax = max(df[year].max() for year in range(2021, 2027))
и измените все графики следующим образом:
south_korea.plot(2021, cmap = "Reds", ax=axs[0, 0], vmin=vmin, vmax=vmax)
Теперь давайте добавим для них цветовую полосу. Я использовал Colorbar на Geopandas, чтобы узнать, как это сделать.
cax = fig.add_axes([0.9, 0.1, 0.03, 0.8])
sm = plt.cm.ScalarMappable(cmap='Reds', norm=plt.Normalize(vmin=vmin, vmax=vmax))
# fake up the array of the scalar mappable. Urgh...
sm._A = []
fig.colorbar(sm, cax=cax)
Обратите внимание, что geopandas использует многие функции matplotlib, поэтому вы можете легче передавать знания и искать.
Укажите одинаковые
vmin
иvmax
в досягаемостиplot()
.