Добавление ценностных меток на карте с картографическим хороплетом - PullRequest
0 голосов
/ 02 января 2019

Я создаю некоторые карты хороплетов, используя картографию, и хотел бы добавить дополнительную функцию: метки с числовыми значениями, связанными с хороплетом для каждой страны / региона.

Вот пример результата, который я получаю.

И вот пример того, что я хотел бы иметь (метки со значениями в каждой области).

Я полагаю, яМожно вручную добавить каждую метку по одной в правильные координаты, но я уверен, что есть более быстрый, более общий и более масштабируемый способ сделать это.Я потратил довольно много времени на исследования, но не нашел удобного решения, поэтому любая помощь будет принята с благодарностью.

Это функция, которую я использую для построения карты хороплета:

def choropleth(ax, countries, geo_dict, cmap_name):
    """
    Plots a choropleth map of selected countries using the values in geo_dict
    as a base for the colormap

    ax: matplotlib axes on which the cloropleth is drawn
    countries: a list of records extracted from a shp file representing the
               regions to be mapped
    geo_dict: a dictionary in which the keys are ISO alpha-2 country codes and
              the values the relevant data for the choropleth
    cmap_name: a string with the name of the colormap to be used
    """

    # value normalization for the color map
    values = [geo_dict[[c.attributes['ISO_A2']][0]] for c in countries]
    norm = Normalize(vmin=min(values), vmax=max(values))

    cmap = plt.cm.get_cmap(cmap_name) # add ',n' to limit choropleth categories

    for c in countries:
        v = geo_dict[c.attributes['ISO_A2']]
        sp = ShapelyFeature(c.geometry, crs,
                            edgecolor='k',
                            linewidth=0.3,
                            zorder = 2,
                            facecolor=cmap(norm(v)))
        ax.add_feature(sp)       

    sm = plt.cm.ScalarMappable(cmap=cmap,norm=norm)
    sm._A = []
    plt.colorbar(sm,ax=ax)       
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...