我使用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' )
EDIT:添加了代码和结果图。我想澄清一下,我想随时在地图上查看各州的名称。
答案 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')