Карта Choropleth в Plotly: цвета не отображаются правильно - PullRequest
0 голосов
/ 08 декабря 2018

Попытка составить картографическое изображение с использованием некоторых данных, которые у меня есть в CSV-файле.Создали следующую карту:

my choromap

Однако это не корректное отображение данных.Вот выдержка из моего CSV-файла:

China,2447
...
Trinidad And Tobago,2
Turkey,26
Ukraine,8
United Arab Emirates,97
United States of America,2008

Исходя из этого, я ожидал, что Китай будет выглядеть в цвете, аналогичном тому, в который загружены США, однако он выглядит так же, как страны со значениямименее 200. Кто-нибудь знает, в чем причина?

Вот мой полный код для справки:

import pandas as pd
import plotly as py 

df = pd.read_csv('app_country_data_minus_uk.csv')

data = [dict(type='choropleth',
                locations = df['Country'],
                locationmode = 'country names',
                z = df['Applications'],
                text = df['Country'],
                colorbar = {'title':'Apps per country'},
                colorscale = 'Jet',
                reversescale = False
                )]


layout = dict(title='Application Jan-June 2018',
geo = dict(showframe=False,projection={'type':'mercator'}))

choromap = dict(data = data,layout = layout)
red = py.offline.plot(choromap,filename='world.html')

1 Ответ

0 голосов
/ 08 декабря 2018

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

import plotly.plotly as py
import pandas as pd

df = pd.read_csv('app_country_data_minus_uk.csv')

data = [ dict(
        type = 'choropleth',
        locations = df['Country'],
        locationmode = 'country names',
        z = df['Applications'],
        colorscale = 'Jet',
        reversescale = False,
        marker = dict(
            line = dict (
                color = 'rgb(180,180,180)',
                width = 0.5
            ) ),
        colorbar = dict(
            autotick = False,
            tickprefix = '',
            title = 'Apps per country'),
      ) ]

layout = dict(
    title = 'app_country_data_minus_uk',
    geo = dict(
        showframe = True,
        showcoastlines = True,
        projection = dict(
            type = 'Mercator'
        )
    )
)

fig = dict( data=data, layout=layout )
py.iplot( fig, validate=False, filename='d3-world-map' )

enter image description here

или если вы хотите построить его в автономном режиме:

import plotly.plotly as py
import pandas as pd
import plotly

df = pd.read_csv('app_country_data_minus_uk.csv')

data = [ dict(
        type = 'choropleth',
        locations = df['Country'],
        locationmode = 'country names',
        z = df['Applications'],
        colorscale = 'Jet',
        reversescale = False,
        marker = dict(
            line = dict (
                color = 'rgb(180,180,180)',
                width = 0.5
            ) ),
        colorbar = dict(
            title = 'Apps per country'),
      ) ]

layout = dict(
    title = 'app_country_data_minus_uk',
    geo = dict(
        showframe = True,
        showcoastlines = True,
        projection = dict(
            type = 'Mercator'
        )
    )
)

fig = dict( data=data, layout=layout )
plotly.offline.plot(fig,filename='world.html')

Если вы используете iplot, вы сможете отредактировать диаграмму и увидеть данныечтобы убедиться, что ваши данные выглядят правильно

...