Сюжет: карта Австралии - PullRequest
       21

Сюжет: карта Австралии

0 голосов
/ 24 апреля 2018

У меня есть список штатов и территорий Австралии с соответствующими значениями.Теперь я хочу создать тепловую карту следующим образом:

enter image description here

Я следую примеру с Pyplot из этой ссылки , но у него есть только пример для штатов в США.

enter image description here

В частности, в этом блоке кода:

data = [ dict(
    type='choropleth',
    colorscale = scl,
    autocolorscale = False,
    locations = df['code'],
    z = df['total exports'].astype(float),
    locationmode = 'USA-states',
    text = df['text'],
    marker = dict(
        line = dict (
            color = 'rgb(255,255,255)',
            width = 2
        ) ),
    colorbar = dict(
        title = "Millions USD")
    ) ]

layout = dict(
    title = '2011 US Agriculture Exports by State<br>(Hover for breakdown)',
    geo = dict(
        scope='usa',
        projection=dict( type='albers usa' ),
        showlakes = True,
        lakecolor = 'rgb(255, 255, 255)'),
         )

Как я могу изменить код, чтобы он соответствовал моим требованиям?Какими должны быть правильные значения для параметров местоположения , locationmode , scope , projection в случае карты Австралии?Например, как я могу узнать код штатов, территорий и городов Австралии, если у меня есть их имена?

Будут благодарны любые указатели.Другие рекомендации библиотеки также будут рассмотрены.

1 Ответ

0 голосов
/ 28 мая 2018

Я пытался сделать нечто подобное несколько месяцев назад, и, к сожалению, в настоящее время Plotly не предлагает даже карты с половинным приличным разрешением для Австралии (или любой другой страны, кроме США).

Если вы ссылаетесь на Plotly API , то доступны только locationmode опции: ["ISO-3" | "USA-states" | "country names"]

Чтобы построить любую страну, не являющуюся США, используйте толькоиспользуйте locationmode = "country names", как в случае Западная Африка , и установите:

geo = dict(
    scope = 'australia'
)

Однако вы обнаружите, что все береговые линии зазубренны и выглядятужасно, нет никакой возможности для границ штатов и т. д.

Лучший вариант, который я смог найти после довольно скучного поиска, - это использование matplotlib и Basemap.Например, этот урок .

Кажется, что Basemap предлагает огромный диапазон опций картирования , так что, надеюсь, вы сможете найти там какую-то любовь.

В качестве альтернативы, если ваши значения распространяются на весь штат, я бы просто воспользовался небольшим классным веб-инструментом , предлагаемым Socialcops.

...