如何参考Plotly美国州示例制作澳大利亚各州及领地等值区域图?
适配Plotly绘制澳大利亚各州/领地等值区域图的解决方案
我来帮你把美国州的Plotly choropleth代码改成适配澳大利亚区域的版本,核心就几个关键修改点,很容易搞定:
1. 替换locationmode参数
原来的代码里用的是针对美国的locationmode = 'USA-states',直接把它改成Plotly内置支持的澳大利亚区域模式:
locationmode = 'Australia States'
2. 确保州/领地代码正确
你的DataFrame里的locations对应的code列,必须用Plotly识别的澳大利亚标准代码,完整列表如下:
- NSW(新南威尔士州)
- VIC(维多利亚州)
- QLD(昆士兰州)
- WA(西澳大利亚州)
- SA(南澳大利亚州)
- TAS(塔斯马尼亚州)
- ACT(澳大利亚首都领地)
- NT(北领地)
3. 修改后的完整代码示例
这里给你一个适配后的完整代码片段,用模拟数据演示,你可以直接替换成自己的真实数据:
import plotly.graph_objects as go import pandas as pd # 模拟澳大利亚各州/领地数据 df = pd.DataFrame({ 'code': ['NSW', 'VIC', 'QLD', 'WA', 'SA', 'TAS', 'ACT', 'NT'], 'value': [1200, 950, 800, 700, 500, 200, 150, 100], 'text': ['新南威尔士州', '维多利亚州', '昆士兰州', '西澳大利亚州', '南澳大利亚州', '塔斯马尼亚州', '首都领地', '北领地'] }) 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)']] fig = go.Figure(data=go.Choropleth( colorscale = scl, autocolorscale = False, locations = df['code'], z = df['value'].astype(float), locationmode = 'Australia States', # 关键修改点 text = df['text'], marker = dict(line = dict(color = 'rgb(255,255,255)', width = 2)), colorbar = dict(title = '数值') )) fig.update_layout( title_text = '澳大利亚各州/领地等值区域图', geo = dict( scope='australia', # 限定地图范围为澳大利亚 showlakes = True, lakecolor = 'rgb(255,255,255)' ) ) fig.show()
额外提示
- 加上
scope='australia'可以让地图自动聚焦到澳大利亚区域,不用手动调整视角 - 如果你的数据里有缺失的州/领地,Plotly会自动留空显示,不影响整体渲染
这样改完之后,你的代码就能正确生成澳大利亚的热力地图啦!
内容的提问来源于stack exchange,提问作者Forrest
相关产品推荐
相关产品推荐

