首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python Plotly错误

Python Plotly错误
EN

Stack Overflow用户
提问于 2018-01-10 22:12:06
回答 1查看 1.2K关注 0票数 1

似乎plotly网站上的choropleth地图的示例代码已经过时了,不再起作用。

我得到的错误是:

代码语言:javascript
复制
PlotlyError: Invalid 'figure_or_data' argument. Plotly will not be able to properly parse the resulting JSON. If you want to send this 'figure_or_data' to Plotly anyway (not recommended), you can set 'validate=False' as a plot option.
Here's why you're seeing this error:

The entry at index, '0', is invalid because it does not contain a valid 'type' key-value. This is required for valid 'Data' lists.

Path To Error:
['data'][0]

我尝试运行的代码如下所示。它是按原样从plotly网站复制的。有没有人知道我该怎么解决这个问题?

代码语言:javascript
复制
import plotly.plotly as py
import pandas as pd

df = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/2011_us_ag_exports.csv')

for col in df.columns:
    df[col] = df[col].astype(str)

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)']]

df['text'] = df['state'] + '<br>' +\
    'Beef '+df['beef']+' Dairy '+df['dairy']+'<br>'+\
    'Fruits '+df['total fruits']+' Veggies ' + df['total veggies']+'<br>'+\
    'Wheat '+df['wheat']+' Corn '+df['corn']

data = [ dict(
        type='choropleth',
        colorscale = scl,
        autocolorscale = False,
        locations = df['code'],
        z = df['total exports'].astype(float),
        locationmode = 'USA-states',
        text = df['text'],
        marker = dict(
            line = dict (
                color = 'rgb(255,255,255)',
                width = 2
            )
        ),
        colorbar = dict(
            title = "Millions USD"
        )
    ) ]

layout = dict(
        title = '2011 US Agriculture Exports by State<br>(Hover for breakdown)',
        geo = dict(
            scope='usa',
            projection=dict( type='albers usa' ),
            showlakes = True,
            lakecolor = 'rgb(255, 255, 255)',
        ),
    )

fig = dict(data=data, layout=layout)

url = py.plot(fig, filename='d3-cloropleth-map')
EN

回答 1

Stack Overflow用户

发布于 2018-01-10 22:26:42

fig应为Figure类型。使用Choropleth图形对象:

代码语言:javascript
复制
import plotly.graph_objs as go
...
data = [go.Choropleth(        
        colorscale = scl,
        autocolorscale = False,
        locations = df['code'],
        z = df['total exports'].astype(float),
        locationmode = 'USA-states',
        text = df['text'],
        marker = dict(
            line = dict(
                color = 'rgb(255,255,255)',
                width = 2)),
        colorbar = dict(
            title = "Millions USD")
        )]

...
fig = go.Figure(data=data, layout=layout)
...
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48189304

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档