标签: plotly-dash

Plotly Dash 加载布局时出错

您好,我是 Dash 新手,我正在按照https://dash.plot.ly/getting-started页面上的教程进行操作,但出现错误,指出未安装 msgpack。我稍后安装了它,然后运行页面上给出的以下代码。

import dash
import dash_core_components as dcc
import dash_html_components as html

app = dash.Dash()

app.layout = html.Div(children=[
    html.H1(children='Hello Dash'),

    html.Div(children='''
        Dash: A Web Application framework for Python.
        '''),

    dcc.Graph(
        id='example-graph',
        figure={
            'data':[
                {'x':[1,2,3],'y':[2,4,1],'type':'bar','name':'SF'}
            ],
            'layout': {
                'title':'Dash Data Visualisation'
            }
        }
    )
])

if __name__ == '__main__':
    app.run_server(debug=True)
Run Code Online (Sandbox Code Playgroud)

当我继续访问http://127.0.0.1:8050/时,出现以下错误

Error loading layout
Run Code Online (Sandbox Code Playgroud)

我阅读了 dash 文档和社区帮助,提出了一些类似的问题,但我无法理解它们。请帮忙。

python flask plotly-dash

5
推荐指数
1
解决办法
2万
查看次数

uWSGI +nginx 设置 - Dash(Plotly)部署

我 \xe2\x80\x99m 是 Fl​​ask 和部署过程的新手\n我的 dash.py 设置如下

\n\n
server = flask.Flask(__name__)\napp = dash.Dash(__name__, server=server)\n
Run Code Online (Sandbox Code Playgroud)\n\n

和我的 nginx 文件

\n\n
server {\nlisten      80;\nserver_name localhost;\ncharset     utf-8;\nclient_max_body_size 75M;\n\nlocation / {try_files $uri @yourapplication; }\nlocation @yourapplication {\n    include uwsgi_params;\n    uwsgi_pass unix:/var/www/School-Dashboard/dash_clean.sock;\n}\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

\xe2\x80\xa6but i\xe2\x80\x99m 不确定我必须在 wsgi ini 文件中设置模块参数。

\n\n
[uwsgi]\n#application's base folder\nbase = /var/www/School-Dahboard\n\n#python module to import\nmodule = dash_clean:app #?????? WHAT DO I DO HERE\n\n#home = %(base)/venv\npythonpath = %(base)\n\n#socket file's location\nsocket = /var/www/School-Dashboard/dash_clean.sock\n\n#permissions for the socket file\nchmod-socket    = 660\n\n\n#location of log files\nlogto = /var/log/uwsgi/%n.log\n
Run Code Online (Sandbox Code Playgroud)\n\n …

nginx flask uwsgi python-3.x plotly-dash

5
推荐指数
1
解决办法
4005
查看次数

返回数字字典时回调返回值无效

我试图返回一个条形图,但用于条形图的列根据下拉值选择而变化。我将字典返回到 graph.figure 输出,但收到以下错误;

dash.exceptions.InvalidCallbackReturnValue:
The callback for property \figure``
of component \graph-one` returned a value`    
which is not JSON serializable.        

In general, Dash properties can only be    
dash components, strings, dictionaries, numbers, None,    
or lists of those.
Run Code Online (Sandbox Code Playgroud)

我的返回值是一本字典。代码如下;

def create_grouped_bar(df):
    return [    
        go.Bar(
            x=df['date'],    
            y=df[col],    
            text=df[col],    
            hoverinfo='text+name',    
            name=col.title(),    
            )
        for col in df.columns
        ]    

@app.callback(    
        Output('graph-one', 'figure'),   
        [Input('filtered_df', 'children'),    
        Input('freq-radio', 'value'),    
        Input('graph-one-drop', 'value'),    
        Input('graph-one-radio', 'value')])    
def update_graph(df_json, freq, cols, amount):    
    dff = pd.read_json(df_json, orient='split')    
    plot_cols = falls_dd_dict[cols]

    plot_df = dff[['date_time_occurred']+plot_cols].copy() …
Run Code Online (Sandbox Code Playgroud)

python plotly plotly-dash

5
推荐指数
1
解决办法
6781
查看次数

如何使 dash 中的选项卡具有不同的 URL?

我正在使用 DASH 库,我的应用程序现在有多个选项卡,但我需要让每个选项卡都有不同的 URL,有人能做到这一点吗?

python plotly-dash

5
推荐指数
1
解决办法
4429
查看次数

5
推荐指数
0
解决办法
700
查看次数

Python / rq - 如何将信息从调用者传递给工作者?

我想使用 rq 在单独的工作人员上运行任务,以从测量仪器收集数据。用户按下仪表板应用程序上的按钮将发出任务结束的信号。问题是任务本身不知道何时终止,因为它无权访问 dash 应用程序的上下文。

我已经习惯meta将信息从工作人员传递回调用者,但是我可以将信息从调用者传递给工作人员吗?

示例任务:

from rq import get_current_job
from time import time

def mock_measurement():
    job = get_current_job()
    t_start = time()

    # Run the measurement
    t = []
    i = []
    job.meta['should_stop'] = False # I want to use this tag to tell the job to stop
    while not job.meta['should_stop']:
        t.append(time() - t_start)
        i.append(np.random.random())
        job.meta['data'] = (t, i)
        job.save_meta()
        sleep(5)
    print("Job Finished")
Run Code Online (Sandbox Code Playgroud)

从控制台,我可以开始这样的工作

queue = rq.Queue('test-app', connection=Redis('localhost', 6379))
job = queue.enqueue('tasks.mock_measurement')
Run Code Online (Sandbox Code Playgroud)

我希望能够从控制台执行此操作,以向工作人员表明它可以停止运行:

job.meta['should_stop'] = True
job.save_meta() …
Run Code Online (Sandbox Code Playgroud)

python redis flask python-rq plotly-dash

5
推荐指数
1
解决办法
2033
查看次数

如何从可编辑表格更新绘图/虚线图?

我有一个带有可删除行和列的破折号 DataTable 对象。我想根据可见行更新数字。我不确定如何创建回调以及要传递哪些参数。当在浏览器中删除行时,存储在表对象中的数据实际上可能不会改变。

from dash_table import DataTable

def lineplot(id, df, cols, title=None, xlabel=None, ylabel=None, x=None, 
             xaxis_type=None, yaxis_type=None, plotly_config=plotly_config,
            ):

    if x is None:
        x_values = df.index
        xlabel = df.index.name
    else:
        x_values = df[x]

    data = [{
        'x': x_values,
        'y': df[col],
        'name': col }  for col in cols]

    layout = go.Layout(
        title=go.layout.Title(
            text=title,
            xref='paper',
            xanchor='center'
        ),
        xaxis = go.layout.XAxis(
            title=go.layout.xaxis.Title(
                text=xlabel,
                font=plotly_config['font'],

            ),
            type=xaxis_type
        ),
        yaxis=go.layout.YAxis(
            title=go.layout.yaxis.Title(
                text=ylabel,
                font=plotly_config['font'],
            ),
        type=yaxis_type
        ),
        showlegend=True
    )


    return dcc.Graph(
        id=id,
        figure={'data': data,
                'layout': layout}, …
Run Code Online (Sandbox Code Playgroud)

plotly plotly-dash

5
推荐指数
1
解决办法
5174
查看次数

django-plotly-dash div 尺寸太小并且不会改变

使用 Django-plotly-dash 模块和 dash 应用程序在一个非常小的窗口中渲染。除了典型的 css 之外,我还能做些什么来渲染这个完整的页面吗?

我尝试过更新特定 div 的样式以及更新整个页面中的样式。

...

{% extends 'base_page.html' %}
{% block content %}
<head>

</head>
<body>
{%load plotly_dash%}

    <div class={% plotly_class name="SimpleExample"%}>

        {% plotly_app name="SimpleExample" %}
      </div>
</body>
{% endblock %}
...
Run Code Online (Sandbox Code Playgroud)

期望 div 是整页,但它只呈现一个非常小的窗口

css django plotly plotly-dash

5
推荐指数
1
解决办法
2374
查看次数

data-dash-is-loading什么时候触发回调函数?

我试图在使用 CSS 属性更新 Dash 图形时显示微调器data-dash-is-loading

我找到了一个可行的解决方案,但想知道为什么我之前的方法无法获得更多见解。

文档的结构是

html.Div(id="some-container",
         children=[dcc.Graph(id="some-graph",
                             figure=fig)])
Run Code Online (Sandbox Code Playgroud)

这是我尝试过的两个回调函数,一次一个。工作回调函数更新整个容器的子级:

@app.callback(
Output("some-container", "children"),
[Input("some-dropdown", "value")])
Run Code Online (Sandbox Code Playgroud)

不起作用的回调函数是

@app.callback(
Output("some-graph", "figure"),
[Input("some-dropdown", "value")])
Run Code Online (Sandbox Code Playgroud)

嗯,它工作得很好,它按应有的方式更新了图形,但它不会触发data-dash-is-loading.

CSS 代码取自这里

*[data-dash-is-loading="true"]{
    visibility: hidden;
}
*[data-dash-is-loading="true"]::before{
    content: "Loading...";
    display: inline-block;
    color: magenta;
    visibility: visible;
}
Run Code Online (Sandbox Code Playgroud)

有人能告诉我原因是什么吗?

plotly plotly-dash plotly.js plotly-python

5
推荐指数
1
解决办法
2799
查看次数

如何获取 Dash 中的当前路径?

我试图获取 URL 的当前路径以便对过滤器进行操作,但是当我调用时dcc.Location.pathname无法获取 URL。

知道如何获得它吗?

我尝试过print(Input('url', 'pathname'))但也不起作用。

任何想法?

谢谢

python plotly-dash

5
推荐指数
1
解决办法
5575
查看次数