首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在虚线条形图中添加色彩比例时,代码中的某处出错

在虚线条形图中添加色彩比例时,代码中的某处出错
EN

Stack Overflow用户
提问于 2019-04-15 22:49:44
回答 2查看 340关注 0票数 0

我已经用dash编写了一些代码来用色标表示条形图。预期的结果如下所示,但只有一个下拉菜单

https://brandatastudio.shinyapps.io/visualization-practica/

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

代码语言:javascript
复制
    #!/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)

相反,获得的结果最终如下所示

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

代码语言:javascript
复制
mode = 'markers',
marker = dict(
    size=16,
    color = datause['Total Investment ($ Millions)'],
    colorbar = dict(title = "hola"),
    colorscale = 'Viridis'
    ))]

如果我删除代码的这一部分,仪表板看起来应该是这样的,当然没有colorscale。

所以,问题是,我插入色标失败的原因是什么?我一直在查看如何添加https://community.plot.ly/t/add-a-colorbar-to-scatter-plot-in-python/13349的不同帖子

https://plot.ly/python/colorscales/#custom-contour-plot-colorscale

而且我没有发现适用于仪表板或barplots的示例,只有在这里我才能希望找到帮助。

注:以下是与环境和软件包有关的信息,影响:

代码语言:javascript
复制
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

以下是使用https://drive.google.com/open?id=1Cr74jKf2FHDA7XVAblQX3d9_dVHfXyVG执行ḿ操作的数据集

EN

回答 2

Stack Overflow用户

发布于 2019-04-16 04:37:16

我看到的唯一问题就是这条线

代码语言:javascript
复制
mode = 'markers',

go.Bar内部。如果您转到reference,您将看到Bar traces没有此属性。如果它仍然不能工作,我建议按部就班地更新,因为版本3是对库的重大升级(实际上,即使它可以工作,我也建议更新)。

下面是一个笔记本的最小示例:

代码语言:javascript
复制
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
    }
)

票数 2
EN

Stack Overflow用户

发布于 2020-05-16 02:58:34

我在使用Dash向Map添加颜色刻度时遇到过类似的问题,我解决这个问题的方法是通过运行代码找出底层的配色方案:

代码语言:javascript
复制
import plotly.express as px

print(px.colors.sequential.Plasma)

['#0d0887', '#46039f', '#7201a8', '#9c179e', '#bd3786', '#d8576b', '#ed7953', '#fb9f3a', '#fdca26', '#f0f921']

那么我在Dash中的命令是:

代码语言:javascript
复制
"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']]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55691799

复制
相关文章

相似问题

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