我有一个输入和一个按钮,我需要在按下按钮时保存文本输入的值。
dcc.Input(id='username', value='Initial Value', type='text'),
html.Button(id='submit-button', children='Submit'),
Run Code Online (Sandbox Code Playgroud)
我的回调中遗漏了一些东西吗?
@app.callback(Output('output_div','children' ),
[Input('submit-button')],
[State('input-element', 'value')],
[Event('submit-button', 'click'])
def update_output(input_element):
print(input_element)
Run Code Online (Sandbox Code Playgroud)
谢谢
我需要根据数值空气质量模型的结果绘制一系列箱线图。由于这是大量数据,每次新模型结果准备好并将其存储在 PostgreSQL 中时,我都会触发聚合计算(最小值、最大值、四分位数等)。为了可视化目的,我将聚合加载到 pandas 中,并使用破折号绘制它们。我能够绘制时间序列的线图,但是我想要得到像这个例子这样的东西,而且是交互式的。
当我浏览示例时,它看起来总是需要原始数据来绘制箱线图(https://plot.ly/python/box-plots/#basic-box-plot)。我真的很喜欢表示和逻辑分离的概念。是否有可能根据聚合数据获得箱线图?
我使用 dash 和plotly 构建了一个仪表板,同时使用对 dash 和plotly 的每个教程或文档中使用的外部样式表的引用。
现在我只想定制整个仪表板的字体(包括图中的文本),“没有其他”。我通过以下方式引用外部 css 源:
external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']
Run Code Online (Sandbox Code Playgroud)
我没有 CSS 经验。我可以覆盖引用源中的相关变量吗?如果可以的话我该怎么做?喜欢:
font-family: "Garamond";
Run Code Online (Sandbox Code Playgroud)
CSS 代码发布在 codepen 上,我也尝试在那里搜索,但没有帮助。
感谢您的帮助!
我需要动态地将单词列表添加到屏幕上特定位置的破折号布局(意味着单词列表随着时间而变化):
import dash
from dash.dependencies import Output, Input
import dash_core_components as dcc
import dash_html_components as html
import plotly
import plotly.graph_objs as go
app = dash.Dash(__name__)
trends =['python', 'flask', 'jave']
html_lists = []
trends =['python', 'flask', 'jave']
app.layout = html.Div(
html.Div(
className="trend",
children=[
html.Ui(
for i in trends:
html.Li(i))
], )
)
print(html_ul_list)
if __name__ == '__main__':
app.run_server(debug=True)
Run Code Online (Sandbox Code Playgroud)
我需要网页上的输出在屏幕右侧如下所示:
趋势
爪哇
等等 ...
我正在尝试在 macOS 上通过 Jupiter 笔记本运行 dash。它确实被导入了,当我尝试运行 app.run_server 命令时它失败了。它给了我以下错误
[Errno 8] nodename 或 servname 提供,或未知

我正在构建一个带有 Dash 的应用程序,该应用程序可以选择保存 csv 文件(在应用程序运行时创建),但我在保存 csv 文件时遇到问题。
我试图做的是使用html.A组件,并href使用此数据设置属性:
csv_string = df.to_csv(encoding='utf-8', index=True)
csv_string = "data:text/csv;charset=utf-8," + urllib.parse.quote(csv_string)
Run Code Online (Sandbox Code Playgroud)
这csv_string是我分配给href属性的数据。我看到有人推荐这种方法,它似乎确实有效。
当数据框太大时出现问题。发生这种情况时,尝试保存文件时会出现下载错误。
你认为我对问题的分类正确吗?真的有可能是尺寸问题吗?
你认为我能做些什么来解决这个问题?有没有其他保存文件的解决方案?我需要说我不想将文件下载到静态文件夹。我需要有将文件下载到用户的默认下载文件夹的解决方案,或者让用户可以选择他想要将文件保存到的文件夹(可能会弹出窗口)。
编辑: 我找到了这个链接:http : //chandrewz.github.io/blog/downloading-large-csv-files-via-href,它准确地描述了我遇到的问题。有没有类似于作者在 Python 中建议的解决方案?
我生成内存通过Excel文件pd.ExcelWriter,并BytesIO在我的Python3.8仪表应用点击事件。
一切正常。当我下载我的文件时,我收到此弹出消息,询问我是否要继续下载/打开生成的文件。但是,弹出消息显示了这个(我猜是base64编码的)字符串(或路径?),例如...ydaHdjhgk328AAAAnxsAA==,下载下载后会获得一组(随机分配的?)字符集作为文件名(例如ZySzsdn1.xlsx)。
我该如何调整它才能显示文件名并将其分配给类似的东西download.xlsx?我的猜测是这与base64编码的href.
生成excel文件的函数:
def write_product_file():
output = BytesIO()
writer = pd.ExcelWriter(output, engine="xlsxwriter")
upload_df = pd.DataFrame()
upload_df.to_excel(writer, index=False, sheet_name="sheet1")
writer.save()
return output
Run Code Online (Sandbox Code Playgroud)
我的 Dash 应用程序中的按钮:
html.Div(
id="select-upload-form",
style={"width": "100%"},
children=[
dbc.Button(
"Download the upload form",
id="download-excel",
color="secondary",
external_link="true",
target="",
href="",
),
],
),
Run Code Online (Sandbox Code Playgroud)
最后我的回调:
@app.callback(
[
Output("download-excel", "href"),
Output("download-excel", "color"),
Output("download-excel", "target"),
],
[Input("download-excel", "n_clicks")],
)
def download_template_file(n_clicks):
if n_clicks:
excelfile = …Run Code Online (Sandbox Code Playgroud) 我正在创建一个dash应用程序,这是我的代码:
# import required packages
import dash
import dash_table
import dash_core_components as dcc
import dash_html_components as html
import dash_bootstrap_components as dbc
import plotly.graph_objs as go
import numpy as np
import pandas as pd
# define figure creation function
def create_figure():
N = 100
x_min = 0
x_max = 10
y_min = 0
y_max = 10
blue = '#6683f3'
orange = '#ff9266'
grey = '#e0e1f5'
black = '#212121'
x = np.linspace(x_min, x_max, N)
y = np.linspace(y_min, y_max, N)
XX, …Run Code Online (Sandbox Code Playgroud) 我有以下回调:
@app.callback(
[Output("useridPicker", "value"), Output("datePicker", "date"), ],
[Input("url", "search")]
)
def update_form_default(url_search):
return 111, dt.today()
@app.callback(
Output("url", "search"),
[Input("useridPicker", "value"), Input("datePicker", "date")]
)
def update_current_url(userid, date):
return f"?userid=111&date=2020-06-29"
Run Code Online (Sandbox Code Playgroud)
我有一个用于选择用户 ID ( useridPicker) 的文本区域、一个用于选择日期 ( datePicker)的日期选择器和一个包含当前用户 ID 和当前日期 (“YYYY-MM-DD”) 作为参数的 url。
当我从 url 修改日期或用户 ID 时,我想更新 ( useridPicker) 和 ( datePicker) 中显示的值。反之亦然。
现在,我收到以下错误:
错误:发现依赖循环:useridPicker.value -> url.search -> useridPicker.value
在回调内部时,有没有办法防止另一个回调触发?为了避免这种循环依赖错误和回调之间可能的无限循环。
我在 plotly/dash 中有一个基本的数据表。我的目标是在按下上传按钮后上传(或为了示例而打印...)。
问题是,我不知道如何将按钮的 n_clicks 属性恢复为零。所以发生的事情是,在我第一次点击按钮后,只要有变化(添加行或更改/添加数字),它就会连续打印,但我想要的是每当我点击按钮时它只打印一次。
这是代码:
import dash
from dash.dependencies import Input, Output, State
import dash_table
import dash_daq as daq
import dash_core_components as dcc
import dash_html_components as html
import pandas as pd
external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']
df = pd.read_csv('.../dummy_csv.csv')
app = dash.Dash(__name__)
app.layout = html.Div([
html.Div(id='my-div'),
dash_table.DataTable(
id='adding-rows-table',
style_data={
'whiteSpace': 'normal',
'height': 'auto'
},
style_table={
'maxHeight': '800px'
, 'overflowY': 'scroll'
},
columns=[
{'name': i, 'id': i} for i in df.columns
],
data=df.to_dict('records'),
editable=True,
row_deletable=True
),
html.Button('+ Row', id='editing-rows-button', n_clicks=0),
html.Button('Update', …Run Code Online (Sandbox Code Playgroud)