标签: plotly-dash

回调失败:服务器没有响应 - 尝试更新 Dash 中的图表时

我们正在从不同版本的表中读取性能数据,并创建折线图来比较不同版本的性能指标。当应用程序在本地运行时,回调将按其应有的方式触发(在页面加载时),并且应用程序可用。但是,当应用程序部署到 UNIX 服务器时,回调将停止工作。

错误:回调失败:服务器未响应。

在 http://server_ip:port/_dash-component-suites/dash_renderer/dash_renderer.v1_5_1m1593111735.dev.js:33217:11

callback plotly-dash

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

Plotly:次要 y 轴导致右侧出现空白

我正在制作一个折线图,其中包含大量在超高分辨率下运行的数据。在添加第二个 y 轴时,我发现,plotly svg 组件内的图表右侧会出现一个空白区域。当我关闭第二个轴时,那个空白空间就会消失。当图表在整个屏幕上最大化时,可以清楚地看到。

作为展示,我使用了plotly文档中的一个例子:

from plotly.subplots import make_subplots
import plotly.graph_objects as go

# Create figure with secondary y-axis
fig = make_subplots(specs=[[{"secondary_y": True}]])

# Add traces
fig.add_trace(
    go.Scatter(x=[1, 2, 3], y=[40, 50, 60], name="yaxis data"),
    secondary_y=False,
)

fig.add_trace(
    go.Scatter(x=[2, 3, 4], y=[4, 5, 6], name="yaxis2 data"),
    secondary_y=True,
)

# Add figure title
fig.update_layout(
    title="Right margin",
    showlegend=False
)

# Set x-axis title
fig.update_xaxes(title_text="xaxis title")

# Set y-axes titles
fig.update_yaxes(title_text="<b>primary</b> yaxis title", secondary_y=False)
fig.update_yaxes(title_text="<b>secondary</b> yaxis title", secondary_y=True)

fig.show()
Run Code Online (Sandbox Code Playgroud)

它产生以下图表,不再居中:

右侧空空间

我怎样才能摆脱那个空白空间?

plotly plotly-dash

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

Plotly:更改旭日图中元素的顺序

我目前正在使用plotlyexpress 来创建Sunburst 图表。然而,我意识到孩子们的标称值是按字母顺序排列的。特别是对于绘制非常不幸的月份......你知道如何处理这个问题吗?也许是财产或某种解决方法?下面有一个例子,你可以自己尝试一下。提前致谢!

import plotly.express as px
import pandas as pd
import calendar
months = [x for x in calendar.month_name if x]

#Create Dataframe
data = []
for m in months:
    data.append(['2018', m, 2])
df = pd.DataFrame(data, columns=['Year', 'Month', 'Value'])

#Compute Sunburst
fig = px.sunburst(df, path=['Year', 'Month'], values='Value')
fig.show()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

python plotly sunburst-diagram plotly-dash plotly-express

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

在绘图中向堆积条形图添加计数百分比

给出以下在plotly中创建的图表。 在此输入图像描述

我想添加每个块内 M 和 F 类别的每个计数的百分比值。

用于生成该图的代码。

arr = np.array([
        ['Dog', 'M'], ['Dog', 'M'], ['Dog', 'F'], ['Dog', 'F'],
        ['Cat', 'F'], ['Cat', 'F'], ['Cat', 'F'], ['Cat', 'M'],
        ['Fox', 'M'], ['Fox', 'M'], ['Fox', 'M'], ['Fox', 'F'],
        ['Dog', 'F'], ['Dog', 'F'], ['Cat', 'F'], ['Dog', 'M']
    ])

df = pd.DataFrame(arr, columns=['A', 'G'])

fig = px.histogram(df, x="A", color='G', barmode="stack")
fig.update_layout(height=400, width=800)

fig.show()
Run Code Online (Sandbox Code Playgroud)

python data-visualization plotly plotly-dash plotly-python

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

将 pandas 数据框导出到 HTML 中的可排序表

有没有办法将 pandas 数据框导出到 HTML 文件中,并合并一些额外的代码,使输出可按列排序?

我一直在使用 Dash DataTable 为用户提供对结果进行排序的选项,但我想知道是否有另一种方法不需要运行服务器,用户只需加载 HTML 页面并对结果进行排序。

到目前为止,我已经能够基于这篇 SO post进行半交互式绘图,但我想在 HTML 中添加可排序的表格,在网上搜索后,我不清楚最好的方法是什么(仍然是一个新手) HTML)

html dataframe pandas plotly plotly-dash

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

使用 python dash-leaflet 高效过滤 GeoJSON 组件

我正在使用 Dash Leaflet 地图组件dash-leaflet 进行交互式地图可视化。

dl.GeoJSON我的目标是通过破折号组件的值(例如)过滤大型 GeoJSON 组件( ) dcc.Slider

我目前的方法如下:

import random
import dash
import dash_html_components as html
import dash_leaflet as dl
import dash_leaflet.express as dlx
import dash_core_components as dcc
from dash.dependencies import Input, Output

# Create some markers.
points = [dict(lat=55.5 + random.random(), lon=9.5 + random.random(), value=random.random()*100) for i in range(100)]
data = dlx.dicts_to_geojson(points)

app = dash.Dash()
app.layout = html.Div([
    dl.Map([
        dl.TileLayer(),
        dl.GeoJSON(id="data-id", data=data)
        ], center=(56, 10), zoom=8, style={'height': '50vh'}),
    html.Div([
        html.H5('Filtering'),
        dcc.Slider(id='my-slider', min=0, max=100, …
Run Code Online (Sandbox Code Playgroud)

python geojson plotly-dash

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

使用 Dash Plotly 更新加载

这是我最近部署的一个简单的网络应用程序:https ://covid19-visualization-seb.herokuapp.com/

我使用了 Dash 框架并使用 Heroku 进行了部署。

我使用 df =pd.read_csv('owid-covid-data.csv')加载数据集。最新的数据集可以在这里找到:

https://covid.ourworldindata.org/data/owid-covid-data.csv

数据每天都在更新。问题是,如果我只df为链接设置变量,那么服务器启动时它只会从源获取数据一次。因此,如果我想每天保持数据最新,我就必须每天重新启动服务器,这是无稽之谈。

Dash 文档提供了页面加载更新功能,如下所示:

import datetime

import dash
import dash_html_components as html

def serve_layout():
    return html.H1('The time is: ' + str(datetime.datetime.now()))

app.layout = serve_layout

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

当我刷新页面时它起作用(时间自行更新)

但我想在页面加载时重新分配一个变量,不知道如何执行此操作,但出现错误。我尝试过这样的事情:

import dash
import pandas as pd

app = dash.Dash()

df = ''

def get_data():
    global df
    df = pd.read_csv('https://covid.ourworldindata.org/data/owid-covid-data.csv')


app.layout = get_data

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

有什么帮助吗?

python pandas plotly plotly-dash

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

如何在 Dash 中不显示默认的 dcc.graph 模板?

我试图在应用程序运行时不显示默认的 dcc.graph。我只想在应用程序运行时显示我的图表

在此输入图像描述

这是我的代码,

应用程序布局

dbc.Row([
    dbc.Col([
        dcc.Graph(id='datatable-upload-graph', responsive=True, style={
            'display': 'block'
        })
    ], xs=10, sm=8, md=5, lg=6, xl=5)
])
Run Code Online (Sandbox Code Playgroud)

回调和方法

@app.callback(
Output('datatable-upload-graph', 'figure'),
Input('container-datatable', 'data')
)
def display_gantt(container_datatable):
    df = pd.DataFrame(container_datatable)

    df['Start Date'] = pd.to_datetime(df['Start Date'], errors='coerce')
    df['End Date'] = pd.to_datetime(df['End Date'], errors='coerce')

    fig = px.timeline(df, x_start="Start Date", x_end="End Date", y="Project Name", color="Status")
    fig.update_yaxes(autorange="reversed")

    if container_datatable is None:
        return []
    else:
        return fig

app.config['suppress_callback_exceptions'] = True
if __name__ == '__main__':
    app.run_server(debug=True, use_reloader=False)
Run Code Online (Sandbox Code Playgroud)

python plotly plotly-dash

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

是否可以在 Dash 应用程序中使用 ipywidgets?

我想使用ipywidgets库中的一些下拉菜单、组合框和其他复杂的小部件组合,这些是我在 jupyter 笔记本中开发的。然而,我被迫使用plotly Dash 进行部署。有没有一种方法可以ipywidgets在绘图 Dash 应用程序中显示,而无需将所有单独的小部件转换为它们的破折号等效项?

jupyter jupyter-notebook ipywidgets plotly-dash

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

本地运行的 python dash 应用程序对于敏感数据是否安全?

我创建了一个 Python Dash 仪表板来交互式显示敏感的客户数据。我在笔记本电脑上通过本地主机使用仪表板。我正在初始化并运行应用程序,如下所示:

app = dash.Dash(__name__)

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

仪表板的数据是否可以被其他人访问或者只能从我的机器访问?

python dashboard plotly plotly-dash

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