python - scattermapbox plot.ly dash 没有出现
问题描述
我正在尝试使用自定义 geojson 文件显示一个 scattermapbox,但在渲染地图时遇到了困难。
如果我将source
图层的 设置为托管数据的 url,我可以很好地渲染 geojson 文件。下面提供了一个示例以及图像:
...
app.layout = html.Div( [ dcc.Graph(
id = 'TxWCD-choropleth',
figure = dict(
data = [dict(
type = 'scattermapbox'
)],
layout = dict(
mapbox = dict(
layers =[ layer_t ],
accesstoken = mapbox_access_token,
center = dict(
lat = 31.3,
lon = -99.2
),
zoom = 5.2,
style='light'
),
height = 900,
autosize = True
)
)
)])
...
但是,我想先将 json 下载到 python 中的一个对象中,以便我可以过滤和自定义数据。但是,当我尝试这样做时,地图会挂起并且永远不会渲染。每当我在浏览器中打开检查器时,也不会出现错误。下面的代码重新创建了我的问题以及错误的图像:
import dash
import json
import os
import dash_core_components as dcc
import dash_html_components as html
import pandas as pd
import geopandas as gpd
# public token
mapbox_access_token = MAPBOX_TOKEN
app = dash.Dash(__name__)
pf = pd.read_json( "https://raw.githubusercontent.com/TNRIS/tx.geojson/master/counties/tx_counties.geojson" )
layer_t = dict(
sourcetype = "geojson",
type = "fill",
color = "#265465",
source = json.loads( pf.to_json() )
)
app.layout = html.Div( [ dcc.Graph(
id = 'TxWCD-choropleth',
figure = dict(
data = [dict(
type = 'scattermapbox'
)],
layout = dict(
mapbox = dict(
layers =[ layer_t ],
accesstoken = mapbox_access_token,
center = dict(
lat = 31.3,
lon = -99.2
),
zoom = 5.2,
style='light'
),
height = 900,
autosize = True
)
)
)])
if __name__ == '__main__':
app.run_server( port = 8051, debug = True )
我已经尝试按照这里的线程来查看我正在做的事情是否有任何错误,但我相信我正在正确计算它。我也在这里,但与示例相比,我的代码没有问题。
任何帮助将不胜感激。
谢谢!
解决方案
推荐阅读
- raspberry-pi - 如何在外部使用 LXD 驱动程序查看 Multipass VM 的实时文件系统?
- java - 如何使用 Jpa Query 在 1 个 DTO 中连接 4 个表
- python - 打印输出导致一半时间出现分割线
- sql - 确定每个客户的最高订单
- python - 从字符串转换为字节时如何正确格式化
- r - “折叠”数据列
- javascript - 使用 Javascript 过滤结果
- python - 为什么我不能使用 pip 安装 cudatookkit=10.1 但可以使用 conda?
- node.js - 访问父 Node.js 项目的 Mongoose Schemas (single db)
- crystal-reports - 在水晶报表中将不同的组保持在同一页面上