标签: plotly-dash

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
查看次数

Python Dash 应用程序使用新数据框进行更新

我是 dash 的新手,正在尝试制作一个基本表格来显示在 IP 上供每个人查看。这样就不需要电子邮件或将数据放置在特定的任何地方。我使用以下代码创建一个从文档中提取的非常简单的破折号表,但我想定期更新仪表板。为此,我使用任务计划程序每 30 分钟运行一次代码,从而终止旧实例。这样,当更新“data.csv”时,表中将显示一个新的数据框。

import dash
import dash_core_components as dcc
import dash_html_components as html
import pandas as pd

df = pd.read_csv('data.csv')


def generate_table(dataframe, max_rows=30):
    return html.Table(
        # Header
        [html.Tr([html.Th(col) for col in dataframe.columns])] +

        # Body
        [html.Tr([
            html.Td(dataframe.iloc[i][col]) for col in dataframe.columns
        ]) for i in range(min(len(dataframe), max_rows))]
    )


external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']

app = dash.Dash(__name__, external_stylesheets=external_stylesheets)

app.layout = html.Div(children=[
    html.H4(children='Title'),
    generate_table(df, max_rows=len(df))
])


if __name__ == '__main__':
    ADDRESS='100.100.100.100'  #ipv4 address for computer code is run on
    PORT=int(1000) …
Run Code Online (Sandbox Code Playgroud)

python plotly-dash

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

Python Dash 数据表:行选择不起作用

嘿那里!这是我的桌子的样子。 我的破折号代码输出

我想在 python 控制台中打印所选行的 NGID 值。我已经创建了回调函数。但是当我选择该行时它什么也不做

这是我的布局的代码:

 def dasher():
             df = pd.read_csv('wyjebany.csv')

             df = df[~df.HOME.str.contains('Beach|Futsal')]
             df = df[~df.COUNTRY.str.contains('Germany Oberliga NOFV|France  Youth U19 
                       League|Portugal Champions NACIONAL Juniores A 1|Spanish Bizkaia-Tercera')]
            df = df.replace(to_replace='Division|League|Liga|Footbal|Primavera', value='', 
                       regex=True)
                       # df = df.replace(to_replace='.', value='', regex=True)
            print(df)
            print(df.columns)

           app.layout = dash_table.DataTable(

                            columns=[{"name": i, "id": i} for i in df.columns],
                           row_selectable='multi',
                           sort_action='native',
                          # editable=True,
                          row_deletable=True,
                         # rows=[{}],
                         selected_rows=[],

                       css=[{'selector': 'tr:hover',
                       'rule': 'background-color:  #80FF80',
                            # 'font-family': 'Times New Roman',

                                   }],
                     html.Div(id='hidden-div', style={'display': 'none'},
             ),
Run Code Online (Sandbox Code Playgroud)

这是回调函数的代码

@app.callback(
dash.dependencies.Output('hidden-div', …
Run Code Online (Sandbox Code Playgroud)

datatable dashboard python-3.x plotly plotly-dash

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

可以自动滚动的仪表板

我想知道是否有一种方法可以让破折号表在滚动条可用时自动上下垂直滚动。

这是一个简单的示例(我使用相同的数据帧 7 次以使其足够长)。

import dash
import dash_table
import pandas as pd

df = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/solar.csv')
long_data = pd.concat([df,df,df,df,df,df,df])

app = dash.Dash(__name__)

app.layout = dash_table.DataTable(
    id='table',
    columns=[{"name": i, "id": i} for i in long_data.columns],
    data=long_data.to_dict('records'),
)

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

有没有办法让这个页面上的内容垂直向上和向下?

html python plotly plotly-dash

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

使用dash上传组件上传csv文件并生成图表

我想上传 csv 文件并生成一个从 csv 文件输出数据的图表,我可以上传 csv 并使用 dash_table 显示数据,但我无法使图表正常工作。上传 csv 文件后出现错误:无效参数figure.data传递到 ID 为“Mygraph”的图表中。期望一个数组。供应类型object

import base64
import datetime
import io
import plotly.graph_objs as go
import cufflinks as cf

import dash
from dash.dependencies import Input, Output, State
import dash_core_components as dcc
import dash_html_components as html
import dash_table

import pandas as pd

external_stylesheets = ["https://codepen.io/chriddyp/pen/bWLwgP.css"]

app = dash.Dash(__name__, external_stylesheets=external_stylesheets)
server = app.server

colors = {"graphBackground": "#F5F5F5", "background": "#ffffff", "text": "#000000"}

app.layout = html.Div(
    [
        dcc.Upload(
            id="upload-data",
            children=html.Div(["Drag and Drop …
Run Code Online (Sandbox Code Playgroud)

python pandas plotly-dash

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

Plotly Dash - dcc.Store 回调触发两次

我在使用 Plotly Dash 时遇到问题,组件触发的回调dcc.Store每次都会触发两次。请参阅下面的代码和示例输出代码,该代码基于 Dash 文档中的示例 ( https://dash.plot.ly/dash-core-components/store )。

任何人都可以解释这一点或建议解决方法来防止它吗?

最小工作示例代码:

import dash

import dash_html_components as html
import dash_core_components as dcc
from dash.dependencies import Output, Input, State
from dash.exceptions import PreventUpdate

app = dash.Dash(__name__)

app.layout = html.Div([
    dcc.Store(id='local', storage_type='local'),
    html.Div(html.Button('localStorage', id='local-button')),
    html.Div(0, id='local-clicks'),
])


@app.callback(Output('local', 'data'),
              [Input('local-button', 'n_clicks')],
              [State('local', 'data')])
def on_click(n_clicks, data):
    if n_clicks is None:
        raise PreventUpdate

    app.logger.info(f"Updating data store")

    data = data or {'clicks': 0}

    data['clicks'] = data['clicks'] + 1
    return data


@app.callback(Output('local-clicks', 'children'),
              [Input('local', …
Run Code Online (Sandbox Code Playgroud)

python plotly-dash

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

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
查看次数