Python 3.x 在短划线条形图中添加色标时代码中的某个地方出错

Python 3.x 在短划线条形图中添加色标时代码中的某个地方出错,python-3.x,plotly,plotly-dash,Python 3.x,Plotly,Plotly Dash,我已经写了一些代码来表示带有色标的条形图,用破折号表示。预期结果与此类似,但只有一个下拉菜单 ,因此我编写了以下代码: #!/usr/bin/env python import dash import dash_html_components as html import dash_core_components as dcc import plotly.offline as pyo import plotly.graph_objs as go import pandas as pd

我已经写了一些代码来表示带有色标的条形图,用破折号表示。预期结果与此类似,但只有一个下拉菜单

,因此我编写了以下代码:

    #!/usr/bin/env python

import dash
import dash_html_components as html
import dash_core_components as dcc
import plotly.offline as pyo
import plotly.graph_objs as go
import pandas as pd
from dash.dependencies import Input, Output

app = dash.Dash()
datause = pd.read_csv("datawind.csv" , sep = ",")






app.layout = html.Div([
dcc.Graph(
       id = 'barplot1'),
dcc.Dropdown(
       id="dropmenu" ,
       options=[{'label' : i , 'value' : i } for i in datause.columns.values
],
       value='Total Investment ($ Millions)')

],
)

@app.callback(Output(component_id = 'barplot1', component_property = 'figure'),
              [Input(component_id = 'dropmenu' , component_property = 'value')])
def update_figure(dropmenuinput):

    potato = dropmenuinput
    return {
        'data':  [
        go.Bar(
        x = datause["State"],
        y = datause[potato],
        mode = 'markers',
            marker = {
                "color" : datause[potato],
                "colorbar" : dict(title = "hola"),
                "colorscale" : 'Viridis'
                })],
        'layout': go.Layout(
        title = "pene"
        ,xaxis={'title': "state"},
        yaxis ={'title' : potato})  }


if __name__ == '__main__':
    app.run_server(debug=True)
相反,得到的结果是这样的

经过测试和重新测试,我发现代码的主要错误似乎在这一部分

mode = 'markers',
marker = dict(
    size=16,
    color = datause['Total Investment ($ Millions)'],
    colorbar = dict(title = "hola"),
    colorscale = 'Viridis'
    ))]
如果我删除代码的这一部分,仪表板看起来应该是这样的,当然没有色阶

所以,问题是,我在插入色阶时失败的是什么?我一直在检查如何添加它们不同的职位

我没有发现适用于仪表板或条形图的示例,只有在这里我希望能找到帮助

注:以下是有关影响以下各项的环境和包装的信息:

chardet==3.0.4
click==6.7
Cython==0.28.2
dash==0.21.0
dash-core-components==0.22.1
dash-html-components==0.10.0
dash-renderer==0.12.1
decorator==4.3.0
nbformat==4.4.0
numpy==1.14.2
pandas==0.22.0
pandas-datareader==0.6.0
plotly==2.5.1
python-dateutil==2.7.2
pytz==2018.4
requests==2.18.4
urllib3==1.22
Werkzeug==0.14.1

这是我想要的数据集ḿ 使用

我看到的唯一问题是线路

mode = 'markers',
go.Bar内
。如果转到,您将看到条跟踪没有此属性。如果它仍然不起作用,我建议进行有计划的更新,因为版本3是对库的主要升级(实际上,即使它起作用,我也建议进行更新)

以下是笔记本电脑的一个简单示例:

trace = go.Bar(
    x = [1, 2, 3, 4],
    y = [1, 2, 3, 4],
    marker = {
        "color" : [1, 2, 3, 4],
        "colorbar" : dict(),
        "colorscale" : 'Viridis',
        "showscale": True
    }
)

我看到的唯一问题是线路

mode = 'markers',
go.Bar内
。如果转到,您将看到条跟踪没有此属性。如果它仍然不起作用,我建议进行有计划的更新,因为版本3是对库的主要升级(实际上,即使它起作用,我也建议进行更新)

以下是笔记本电脑的一个简单示例:

trace = go.Bar(
    x = [1, 2, 3, 4],
    y = [1, 2, 3, 4],
    marker = {
        "color" : [1, 2, 3, 4],
        "colorbar" : dict(),
        "colorscale" : 'Viridis',
        "showscale": True
    }
)

在使用Dash向地图添加颜色比例时,我遇到了类似的问题,我解决这一问题的方法是通过运行代码找出基本颜色方案:

import plotly.express as px

print(px.colors.sequential.Plasma)

['#0d0887', '#46039f', '#7201a8', '#9c179e', '#bd3786', '#d8576b', '#ed7953', '#fb9f3a', '#fdca26', '#f0f921']
那么我在Dash中的命令是:

"colorscale":[[0.0,'#0d0887'], [0.1,'#46039f'], [0.2,'#7201a8'], [0.3,'#9c179e'], [0.4,'#bd3786'], [0.5,'#d8576b'], [0.6,'#ed7953'], [0.7,'#fb9f3a'], [0.8,'#fdca26'], [1.0,'#f0f921']]

在使用Dash向地图添加颜色比例时,我遇到了类似的问题,我解决这个问题的方法是通过运行代码找出基本的颜色方案:

import plotly.express as px

print(px.colors.sequential.Plasma)

['#0d0887', '#46039f', '#7201a8', '#9c179e', '#bd3786', '#d8576b', '#ed7953', '#fb9f3a', '#fdca26', '#f0f921']
那么我在Dash中的命令是:

"colorscale":[[0.0,'#0d0887'], [0.1,'#46039f'], [0.2,'#7201a8'], [0.3,'#9c179e'], [0.4,'#bd3786'], [0.5,'#d8576b'], [0.6,'#ed7953'], [0.7,'#fb9f3a'], [0.8,'#fdca26'], [1.0,'#f0f921']]

删除该行并进行更新,但没有任何改进。谢谢你的回答,至少我移动了那行并更新了,没有改进。至少谢谢你的回答