我正在通过情节学习 dash 的基础知识。下面的代码运行良好。
import dash
from dash.dependencies import Input, Output
import dash_core_components as dcc
import dash_html_components as html
app = dash.Dash()
app.layout = html.Div([
dcc.Input(id='input', value='Enter something here!', type='text'),
html.Div(id='output')
])
@app.callback(
Output(component_id='output', component_property='children'),
[Input(component_id='input', component_property='value')]
)
def update_value(input_data):
return 'Input: "{}"'.format(input_data)
if __name__ == '__main__':
app.run_server(debug=True)
Run Code Online (Sandbox Code Playgroud)
但是当我运行另一个示例时,我得到了上面代码的输出。
请提出前进的方向。感谢您抽出宝贵的时间。
我尝试从命令提示符运行代码,但仍然不起作用。我更改了 debug='False' 但仍然不起作用
我在 Dash 中有一个散点图,其中文本属性(设置悬停时显示的文本)设置为从数据框中的特定列获取文本。
问题是一些悬停文本太长并且超出了页面。有没有办法让悬停长度固定,这样就不会发生这种情况?
我已经看到使用悬停格式来处理数值数据。但我的悬停信息是文本。
我有一个使用plotly.py制作的散点图,我想根据特定条件用不同的颜色为散点图中的某些点着色。我在下面附上了示例代码:
import plotly.plotly as py
import plotly.graph_objs as go
from plotly.offline import plot
data = [4.1, 2.1, 3.1, 4.4, 3.2, 4.1, 2.2]
trace_1 = go.Scatter(
x = [1, 2, 3, 4, 5, 6, 7],
y = data
)
layout = go.Layout(
paper_bgcolor='rgb(255,255,255)',
plot_bgcolor='rgb(229,229,229)',
title = "Sample Plot",
showlegend = False,
xaxis = dict(
mirror = True,
showline = True,
showticklabels = True,
ticks = 'outside',
gridcolor = 'rgb(255,255,255)',
),
yaxis = dict(
mirror = True,
showline = True,
showticklabels = …Run Code Online (Sandbox Code Playgroud) 目前我已经使用 python Plotly Dash 库开发了图表,我想自定义他们的内置图表工具栏
工具栏图片

我正在尝试绘制几周内的销售趋势。但在 x 轴上,刻度没有按正确的排序顺序,这使我的图表看起来很奇怪。
正如您所看到的,圈出的周需要从起始点或轴开始。即使我对数据框中的日期进行了排序,为什么还会发生这种情况?
熊猫代码:
basic_df = filterDataFrameByDate(df,start_date,end_date)
df = basic_df.groupby(['S2PName',basic_df['S2BillDate'].dt.to_period(flag)], sort=False)['S2PGTotal'].agg([('totSale','sum'),('count','size')]).reset_index()
df.sort_values('S2BillDate',inplace=True)
df['S2BillDate'] = df['S2BillDate'].astype('str')
Run Code Online (Sandbox Code Playgroud)
我还注意到的另一件事是,当我从图例中取消选择“Samosa”时,刻度线会正确排列。
有人可以帮我解决这个问题吗?
熊猫代码和数据:
代码 :
print(df['S2BillDate'].unique())
Run Code Online (Sandbox Code Playgroud)
操作:
<PeriodArray>
['2020-02-03/2020-02-09', '2020-02-10/2020-02-16', '2020-02-17/2020-02-23',
'2020-02-24/2020-03-01']
Length: 4, dtype: period[W-SUN]
Run Code Online (Sandbox Code Playgroud)
代码 :
df = basic_df.groupby(['S2PName',basic_df['S2BillDate'].dt.to_period(flag)], sort=False)['S2PGTotal'].agg([('totSale','sum'),('count','size')]).reset_index()
Run Code Online (Sandbox Code Playgroud)
操作:
[537 rows x 4 columns]
S2PName S2BillDate totSale count
0 SAMOSA 2020-02-10/2020-02-16 4057.89 228
1 COFFEE 2020-02-10/2020-02-16 10567.21 582
2 TEA 2020-02-10/2020-02-16 6808.92 445
3 POORI 2020-02-10/2020-02-16 7556.77 179
4 PONGAL 2020-02-10/2020-02-16 4758.97 122
.. ... ... ... ... …Run Code Online (Sandbox Code Playgroud) 我正在尝试构建一个破折号应用程序,它接受用户的输入并将每个条目附加到数据框中,但它正在替换旧条目并生成新条目。我不确定回调出了什么问题。还尝试构建一个逻辑,如果用户条目与数据帧的任何行匹配,那么只有它才会替换其他附加。
我们将非常感谢您的帮助:
@app.callback(Output('save-query', 'children'),
[Input('save', 'n_clicks')],
[State('ad_account_id', 'value'),
State('app_id', 'value'),
State('access_token', 'value'),
State('app_secret', 'value'),
State('metrics', 'value'),
State('breakdown', 'value'),
State('start-date', 'date'),
State('end-date', 'date'),
State('save-as', 'value')
],
)
def save_query(clicks, ad_account_id, app_id, access_token, app_secret, metrics, breakdown,
start_date, end_date, save):
if clicks is not None:
my_ad_account = ad_account_id
my_app_id = app_id
my_access_token = access_token
my_app_secret = app_secret
my_metrics = metrics
my_breakdown = breakdown
my_start_date = start_date
my_end_date = end_date
my_save = str.lower(save)
data = [[my_save, my_ad_account, my_app_id, my_access_token, my_app_secret, my_metrics, my_breakdown,
my_start_date,
my_end_date]] …Run Code Online (Sandbox Code Playgroud) 我正在使用 xaxis 滑块在 dash-plotly (python) 中创建一个简单的股票图表应用程序。滑动 xaxis 时,我希望 yaxis 动态重新缩放到视图。我想我已经设法在通过“relayoutData”钩子滑动 xaxis 比例时触发回调函数。但不是更新 yaxis,脚本会引发错误。我不确定从回调函数更新布局的正确语法。有任何想法吗?
到目前为止,这是我的代码。它会运行,但 yaxis 是在运行时设置的,并且不会更新。
非常感谢您的帮助 =)
import dash
from dash.dependencies import Output, Input
import dash_core_components as dcc
import dash_html_components as html
import plotly.graph_objs as go
import numpy as np
import datetime
#some random values
a = datetime.datetime.today()
numdays = 100
dateList = []
for x in range (0, numdays):
dateList.append(a - datetime.timedelta(days = x))
xy = [dateList,np.random.rand(100)]
app = dash.Dash()
app.title = 'Random'
dataS = go.Scatter(
x = …Run Code Online (Sandbox Code Playgroud) 当我尝试将 python/dash 应用程序部署到 GCP 应用程序引擎时,我收到以下消息:“错误:(gcloud.app.deploy) 您的应用程序不满足 [python37] 类型的运行时的所有要求。请更正错误,然后重试。”
哪些错误?这是我的 app.yaml 文件:
runtime: python37
env: flex
instance_class: F4_1G
resources:
cpu: 1
memory_gb: 8
disk_size_gb: 10
entrypoint: gunicorn -b :$PORT main:app
# handlers:
# - url: ./assets
# static_dir: assets
# https://cloud.google.com/appengine/docs/standard/python/config/appref
env_variables:
PKL_BUCKET: 'susano-dash.appspot.com'
Run Code Online (Sandbox Code Playgroud)
这是我的 requirements.txt 文件:
Brotli==1.0.7
cachetools==4.1.0
certifi==2020.4.5.1
chardet==3.0.4
click==7.1.2
dash==1.11.0
dash-bootstrap-components==0.10.0
dash-core-components==1.9.1
dash-html-components==1.0.3
dash-renderer==1.4.0
dash-table==4.6.2
Flask==1.1.2
Flask-Compress==1.5.0
Flask-SQLAlchemy==2.4.3
future==0.18.2
google-api-core==1.17.0
google-api-python-client==1.8.4
google-auth==1.15.0
google-auth-httplib2==0.0.3
google-auth-oauthlib==0.4.1
google-cloud==0.34.0
google-cloud-core==1.3.0
google-cloud-storage==1.29.0
google-resumable-media==0.5.1
googleapis-common-protos==1.51.0
httplib2==0.18.1
idna==2.9
itsdangerous==1.1.0
Jinja2==2.11.2
MarkupSafe==1.1.1
numpy==1.18.3
oauthlib==3.1.0
pandas==1.0.3
plotly==4.6.0 …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 url 回调构建多页面 Dash 应用程序。我的应用程序名为 dash_apps.py 如下所示:
\nfrom flask import Flask\nfrom flask import request\nimport dash\nimport dash_core_components as dcc\nimport dash_html_components as html\nfrom dash.dependencies import Input, Output, State\n\nserver = Flask(__name__)\napp = dash.Dash(\n __name__,\n server = server,\n serve_locally = False,\n requests_pathname_prefix = "/plotary/dash/",\n)\n\napp.layout = html.Div([\n html.Div([\n html.A([\n html.Div(id="logo")\n ],href=\'https://man-es.com\'),\n html.Div([\n html.H1(\'Keine Auswertung ausgew\xc3\xa4hlt. \')\n ],id="description"),\n ],\n id="navbar")]\n)\n\n@app.callback(Output(\'description\', \'children\'),\n [Input(\'url\', \'pathname\')])\ndef display_page(pathname):\n return html.Div([\n html.H1(\'Auswertung Nr {}\'.format(pathname))\n ])\n\n@server.route(\'/plotary/dash/<int:report_id>\')\ndef create_report(report_id):\n return app\n\nif __name__ == \'__main__\':\n app.run_server(debug=True)\nRun Code Online (Sandbox Code Playgroud)\n并通过 wsgi.py 调用,如下所示:
\nfrom dash_apps import …Run Code Online (Sandbox Code Playgroud) 关于dcc.Store在多选项卡结构应用程序中使用的问题。我想保留/存储选项卡之间的数据切换。我的多页面/选项卡破折号应用程序结构如下所示:
index.py根据选择呈现每个文件的布局。
app.layout = html.Div([
# tabs
html.Div([
dcc.Tabs(
id="tabs",
vertical=True,
className="mb-3",
persistence=True,
children=[
dcc.Tab(label="tab1", value="tab1",
children=[dcc.Tabs(id="subtabs", persistence=True,
children=[dcc.Tab(label='subtab1', value='subtab1'),
dcc.Tab(label='subtab2', value='subtab2')
],
)
]),
dcc.Tab(label="tab2", value="tab2"),
],
)
],
className="row tabs_div"
),
# Tab content
html.Div(id="tab_content"),
])
Run Code Online (Sandbox Code Playgroud)
现在,我想在不同的子选项卡之间交换组件状态/数据。subtab1.py包含dcc.Graphanddata-table和 'subtab2.py contains a series of dcc.Graph组件。
我是否需要dcc.Store在两者中添加组件subtab1.py并subtab2.py存储各个组件并从中读取?我希望能够读取subtab1.pyinsubtab2.py和其他文件的组件状态。