plotly - 是否可以在 plotly 中创建单个美国州的等值线图?
问题描述
是否可以创建单个州或多个彼此相邻的州的地图?即只创建加利福尼亚州、内华达州和亚利桑那州的地图,而不显示美国其他地区?
解决方案
是的,您可以过滤掉您不需要的 geojson 功能,即在您的情况下,除了加利福尼亚、内华达和亚利桑那之外的所有州。这是一个使用 Dash Leaflet 演示概念的小型 Dash 应用程序,
import dash
import dash_html_components as html
import json
import dash_leaflet as dl
from dash_leaflet import express as dlx
# Input data.
with open("assets/us-states.json", 'r') as f:
data = json.load(f)
marks = [0, 10, 20, 50, 100, 200, 500, 1000]
colorscale = ['#FFEDA0', '#FED976', '#FEB24C', '#FD8D3C', '#FC4E2A', '#E31A1C', '#BD0026', '#800026']
def get_style(feature):
color = [colorscale[i] for i, item in enumerate(marks) if feature["properties"]["density"] > item][-1]
return dict(fillColor=color, weight=2, opacity=1, color='white', dashArray='3', fillOpacity=0.7)
# Create colorbar.
ctg = ["{}+".format(mark, marks[i + 1]) for i, mark in enumerate(marks[:-1])] + ["{}+".format(marks[-1])]
colorbar = dlx.categorical_colorbar(categories=ctg, colorscale=colorscale, width=300, height=30, position="bottomleft")
# Create geojson.
options = dict(hoverStyle=dict(weight=5, color='#666', dashArray=''), zoomToBoundsOnClick=True)
geojson = dlx.geojson(data, id="geojson", defaultOptions=options, style=get_style)
# Filter out the desired states.
target_states = ["California", "Nevada", "Arizona"]
geojson.data["features"] = [f for f in geojson.data["features"] if f["properties"]["name"] in target_states]
# Create app.
app = dash.Dash()
app.layout = html.Div([dl.Map(children=[dl.TileLayer(), geojson, colorbar], center=[39, -98], zoom=4)],
style={'width': '100%', 'height': '50vh', 'margin': "auto", "display": "block"}, id="map")
if __name__ == '__main__':
app.run_server()
要运行该示例,您必须将us-states.json
文件放在资产文件夹中。您可以从原始 Leaflet 示例或从此处获取它。
推荐阅读
- python - 在python中使用正则表达式(re.findall)从文本中提取15位字符串
- android - 在原生 iOS 和 Android 中获取 --dart-define 环境变量
- flutter - Flutter 在更改控制器的文本时将文本字段光标设置为启动
- python - 如何在分布图上绘制平均线?
- machine-learning - 我可以使用 Adaboost 解决线性回归问题吗?
- python - Python:我想对逻辑回归和报告分数执行 5 折交叉验证。我使用 LogisticRegressionCV() 还是 cross_val_score()?
- swift - 将 Swift 字符串转换为 swift-currency/USD 格式的最佳方法是什么?
- python - 向 serializer.data 添加额外参数
- amazon-web-services - 使用 Lambda 按顺序处理 S3 事件
- azure-active-directory - 手动编辑 azure devops server 2019 迁移到 azure devops 服务的数据迁移工具配置文件