Python Plotly-如何从json文件在地图上绘制线条?

Python Plotly-如何从json文件在地图上绘制线条?,python,plotly-python,Python,Plotly Python,我试图从一个json文件在plotly中在地图上绘制一条线,并不断收到以下错误。plotly网站上的所有示例都使用.csv文件。但是,我想使用json文件。任何帮助都将不胜感激 错误:找不到有效的mapbox样式,请将mapbox.style设置为以下之一: 开放街道地图,白色背景,carto正电子,carto暗色材料,雄蕊地形,雄蕊调色剂,雄蕊水彩 或注册Mapbox访问令牌以使用Mapbox服务样式 Python: import plotly.graph_objects as go impo

我试图从一个json文件在plotly中在地图上绘制一条线,并不断收到以下错误。plotly网站上的所有示例都使用.csv文件。但是,我想使用json文件。任何帮助都将不胜感激

错误:找不到有效的mapbox样式,请将
mapbox.style
设置为以下之一: 开放街道地图,白色背景,carto正电子,carto暗色材料,雄蕊地形,雄蕊调色剂,雄蕊水彩 或注册Mapbox访问令牌以使用Mapbox服务样式

Python:

import plotly.graph_objects as go
import pandas as pd
import json

with open('fcRailroad.geojson') as json_file:
    fcRailroad = json.load(json_file)

fig = go.Figure(go.Scattermapbox())

fig.update_layout(mapbox_style="stamen-terrain", 
                mapbox_zoom=10, 
                mapbox_center_lat = 40.58,
                mapbox_center_lon = -105.08,
                margin={"r":0,"t":0,"l":0,"b":0},
                mapbox=go.layout.Mapbox(
                    layers=[{
                        'sourcetype': 'geojson',
                        'source': fcRailroad,
                        'type': 'line',
                    }]
                ))

fig.show()
{
    "type": "FeatureCollection",
    "features": [
        {
            "type": "Feature",
            "properties": {},
            "geometry": {
                "type": "LineString",
                "coordinates": [
                    [
                        -825.0913953781128,
                        40.49348616373978
                    ],
                    [
                        -825.0906443595885,
                        40.49508532104079
                    ],
                    [
                        -825.0863313674927,
                        40.502411585011934
                    ]
                ]
            }
        }
    ]
}
Json:

import plotly.graph_objects as go
import pandas as pd
import json

with open('fcRailroad.geojson') as json_file:
    fcRailroad = json.load(json_file)

fig = go.Figure(go.Scattermapbox())

fig.update_layout(mapbox_style="stamen-terrain", 
                mapbox_zoom=10, 
                mapbox_center_lat = 40.58,
                mapbox_center_lon = -105.08,
                margin={"r":0,"t":0,"l":0,"b":0},
                mapbox=go.layout.Mapbox(
                    layers=[{
                        'sourcetype': 'geojson',
                        'source': fcRailroad,
                        'type': 'line',
                    }]
                ))

fig.show()
{
    "type": "FeatureCollection",
    "features": [
        {
            "type": "Feature",
            "properties": {},
            "geometry": {
                "type": "LineString",
                "coordinates": [
                    [
                        -825.0913953781128,
                        40.49348616373978
                    ],
                    [
                        -825.0906443595885,
                        40.49508532104079
                    ],
                    [
                        -825.0863313674927,
                        40.502411585011934
                    ]
                ]
            }
        }
    ]
}

您没有正确读取json文件。您试图将“fcrailway.json”读入json。而且它显然不是有效的json。以下是从文件加载内容的方式:

with open('fcRailroad.json') as json_file:
    fcRailroad = json.load(json_file)

谢谢我应该把它读成geojson吗?该文件是正确的类型,因为我可以在传单中绘制线条,但我很难使用plotly。据我所知,您的数据格式很差。我不知道你想策划什么。但你不应该只使用坐标。没有内嵌的映射框(),感谢您指出这一点。在浏览了几页plotly文档之后,我使用了plotly.graph\u对象并更新了代码。疯狂的是,在plotly中没有用于绘制地图的geojson属性,这毫无意义。我没有发现geojson文件有任何错误,但收到的新错误发生在我添加mapbox属性之后。有什么建议吗?谢谢你的帮助。我还想在地图上画一条线。它沿着铁轨行驶。