使用Plotly的Chloropleth地图时如何显示美国州名?

时间:2018-09-18 10:24:20

标签: python plotly

我使用Plotly的chloropleth贴图在美国所有州创建了一个热图。在对文档进行了广泛搜索之后,我找不到要显示州名的参数。有谁知道该怎么做,或者解决方法?

scl = [[0.0, 'rgb(242,240,247)'],[0.2, 'rgb(218,218,235)'],[0.4, 'rgb(188,189,220)'],\
            [0.6, 'rgb(158,154,200)'],[0.8, 'rgb(117,107,177)'],[1.0, 'rgb(84,39,143)']]


data = [ dict(
        type='choropleth',
        colorscale = scl,
        autocolorscale = False,
        locations = df['code'],
        z = df['new_old_ratio'].astype(float),
        locationmode = 'USA-states',
        marker = dict(
            line = dict (
                color = 'rgb(255,255,255)',
                width = 2
            ) ),
        colorbar = dict(
            title = "New/Old Ratio")
        ) ]

layout = dict(
        title = 'New Title to Old Title Ratio',
        geo = dict(
            scope='usa',
            projection=dict( type='albers usa' ),
            showlakes = True,
            lakecolor = 'rgb(255, 255, 255)'),
             )

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

This is the resultant map

EDIT:添加了代码和结果图。我想澄清一下,我想随时在地图上查看各州的名称。

2 个答案:

答案 0 :(得分:0)

这是您在plotly示例中拥有的代码。如您所见,数据中有一个名为“文本”的选项,该选项与您通过状态返回的文本相对应。在您的代码中,您不会这样做。
因此您需要先添加df['text'] = df['states'],然后再添加数据text = df['text']

编辑 但是,问题是关于始终显示所有名称。经过大量的研究,我发现的唯一发现就是获取每个州(州的中心)的经度和纬度,并用text = df['text'],mode ="text"将其显示在a Choropleth map with a geoscatter中,我看不到另一种方法。但是,您将需要目前没有的坐标。.抱歉。

如果您确实想要地图上的名称,可以使用this

答案 1 :(得分:0)

回复旧线程。

附加 add_scattergo 帮助我解决了完全相同的问题。

fig.add_scattergeo(
    locations=data_state['state_code'],    ###codes for states,
    locationmode='USA-states',
    text=data_state['state_code'],`
    mode='text')