我正在尝试使用 Dash Plot 将输入值传递给另一个。
主页上有一个策略列表:
First_page = html.Div([
html.Div([dcc.Dropdown(id='strategy', options=[{'label': i, 'value': i} for i in [strat1, start2]], multi=True)], value = [strat1]),
html.Div([dcc.Input(id='date_start', type='text', value='1990-01-01')]),
html.Button('Start Calculation', id='button'),
])
Run Code Online (Sandbox Code Playgroud)
我的第 1 页和第 2 页如下:
for i in range(2) :
layout = html.Div([
html.Div([dcc.Dropdown(id='strategy'+str(i), options=[{'label': i, 'value': i} for i in [strat1, start2]]])], value = strat+str(i)),
html.Div([dcc.Input(id='date_start'+str(i), type='text', value='1990-01-01')]),
html.Button('Start Calculation', id='button'+str(i)),
+ other options not listed in main page
])
Run Code Online (Sandbox Code Playgroud)
目标如下:当用户在主页上时,他可以选择他想要查看的策略列表以及开始日期。
然后当他按下按钮时,它应该为每个选择的策略打开页面(在这个例子中我们有 2 个策略,所以我应该有 2 个页面:localhost:port/page-strat1 和 localhost:port/page-strat2),如图所示在每一页上都以所选日期开始。
我成功打开页面 localhost:port/strat1 …
使用Dash 0.22.0和Python 2.7.12。Plotly 是 3.1.0,但未在以下示例中使用。
我正在尝试创建一个应该完全脱机工作的最小应用程序。
而不是从远程加载的dash_html_components/bundle.js,dash_renderer/bundle.js,react.min.js和react-dom.min.js,我把自己的本地副本在/assets/js。我想告诉 Dash 只使用这些文件的本地副本。
我阅读了资产文件和索引自定义#286,如果我理解得很好,下面的例子应该可以工作:
# -*- coding: utf-8 -*-
import dash
import dash_core_components as dcc
import dash_html_components as html
app = dash.Dash()
# default values
app.config.assets_folder = 'assets' # The path to the assets folder.
app.config.include_asset_files = True # Include the files in the asset folder
app.config.assets_external_path = "" # The external prefix if serve_locally == False
app.config.assets_url_path …Run Code Online (Sandbox Code Playgroud) 我想阻止用户按下“提交”按钮 30 秒,在他们将它推送到下面的脚本中之后。我该怎么做呢?这是我的代码目前的样子:
import dash
from dash.dependencies import Input, Output, State
import dash_core_components as dcc
import dash_html_components as html
app = dash.Dash()
app.layout = html.Div([
dcc.Input(id='my-id', value='initial value', type="text"),
html.Button('Submit', id='button'),
html.Div(id='my-div')
])
@app.callback(
Output(component_id='my-div', component_property='children'),
[Input('button', 'n_clicks')],
state=[State(component_id='my-id', component_property='value')]
)
def update_output_div(n_clicks, input_value):
return 'You\'ve entered "{}" and clicked {} times'.format(input_value, n_clicks)
if __name__ == '__main__':
app.run_server()
Run Code Online (Sandbox Code Playgroud)
有谁知道我如何阻止用户按下按钮 30 秒?
预先感谢。
编辑 15/08/2018 9:30AM GMT 对 stevepastelan 的回应:
import dash
from dash.dependencies import Input, Output, State
import dash_core_components as …Run Code Online (Sandbox Code Playgroud) 如何重定向/显示控制台输出(包括我在程序中打印的输出),以便它出现在 Dash 应用程序中(在用户看到的屏幕上)?
我已经构建了一个仪表板并使用我自己的 css 自定义了外观。该应用程序的结构如下
然后我对我们的 linux 服务器进行 dockerised 和部署仪表板。不幸的是,我们的 linux 服务器用它自己的 css 覆盖了资产文件夹。
为了让应用程序找到它自己的 CSS,我需要在 dash 应用程序中指定我自己的资产文件夹。
我在本地尝试了各种语法(如下)但无法正常工作
app = dash.Dash(__name__,static_folder='/new_assets/')
app = dash.Dash(__name__,assets_folder='/new_asssets/')
app = dash.Dash(__name__,assets_url_path='/new_asssets/')
Run Code Online (Sandbox Code Playgroud)
对此的任何建议将不胜感激!
我最近在探索 Plotly,我想知道是否有一种方法可以共享绘图并让查看器在对数轴和线性轴之间切换。
有什么建议吗?
我想读取一个 .csv 文件并返回一个 groupby 函数作为回调,以显示为带有“dash_table”库的简单数据表。@Lawliet 的有用答案显示了如何使用“dash_table_experiments”库来做到这一点。这是我被困的地方:
import pandas as pd
import dash
import dash_core_components as dcc
import dash_html_components as html
import dash_table
from dash.dependencies import Input, Output, State
df = pd.read_csv(
'https://gist.githubusercontent.com/chriddyp/'
'c78bf172206ce24f77d6363a2d754b59/raw/'
'c353e8ef842413cae56ae3920b8fd78468aa4cb2/'
'usa-agricultural-exports-2011.csv')
app = dash.Dash()
application = app.server
app.layout = html.Div([
dash_table.DataTable(
id = 'datatable',
),
html.Div([
html.Button(id='submit-button',
children='Submit'
)
]),
])
@app.callback(Output('datatable','data'),
[Input('submit-button','n_clicks')],
[State('submit-button','n_clicks')])
def update_datatable(n_clicks,csv_file):
if n_clicks:
dfgb = df.groupby(['state']).sum()
return dfgb.to_dict('rows')
if __name__ == '__main__':
application.run(debug=False, port=8080)
Run Code Online (Sandbox Code Playgroud) 我需要在 python 中以 plotly 更改子图标题,即将其旋转 90 度。我很努力,但没有成功。
这是我的代码
import plotly.offline as pyo
import plotly.graph_objs as go
from plotly import tools
trace1 = go.Bar(
x=[1, 2, 3],
y=[10, 11, 12]
)
trace2 = go.Bar(
x=[1, 2, 3],
y=[100, 110, 120],
)
trace3 = go.Bar(
x=[1, 2, 3],
y=[1000, 1100, 1200],
)
fig = tools.make_subplots(rows=1, cols=3,
shared_xaxes=True, shared_yaxes=True,
vertical_spacing=0.001,
subplot_titles = ('first_title', 'second_title', 'third_title'))
fig.append_trace(trace1, 1, 1)
fig.append_trace(trace2, 1, 2)
fig.append_trace(trace3, 1, 3)
fig['layout'].update(height=600, width=600, title='main_title')
pyo.plot(fig, filename='file.html')
Run Code Online (Sandbox Code Playgroud)
所以,我想旋转'first_title','second_title' …
我正在尝试在我的网站中插入一个用 Flask 编写的条形图。这是我的 app.py 的样子:
from flask import Flask, render_template
app = Flask(__name__)
@app.route("/")
def index():
return render_template('index.html', title="Mainpage")
if __name__=='__main__':
app.run(debug=True)
Run Code Online (Sandbox Code Playgroud)
这是我的条形图的样子(chart.py):
# -*- coding: utf-8 -*-
import dash
import dash_core_components as dcc
import dash_html_components as html
external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']
app = dash.Dash(__name__, external_stylesheets=external_stylesheets)
app.layout = html.Div(children=[
dcc.Graph(
id='example-graph',
figure={
'data': [
{'x': [1, 2, 3], 'y': [4, 1, 2], 'type': 'bar', 'name': 'SF'},
{'x': [1, 2, 3], 'y': [2, 4, 5], 'type': 'bar', 'name': u'Montréal'},
],
}
) …Run Code Online (Sandbox Code Playgroud) 所以这是一个安装到 fastapi 的示例 dash 应用程序。我正在使用 app.mount 基于官方文档fastapi-adcanced-wsgi 中的这个示例。现在我被卡住了,因为我看不到可以挂载这个 dash 应用程序并添加 fastapi 依赖项的方法
我想通过向 fastapi 路由添加单个依赖项的方式向这个 dash 子应用程序添加令牌甚至基本身份验证:
from fastapi import Depends, FastAPI
from fastapi.security import HTTPBasic, HTTPBasicCredentials
app = FastAPI()
security = HTTPBasic()
@app.get("/users/me")
def read_current_user(credentials: HTTPBasicCredentials = Depends(security)):
return {"username": credentials.username, "password": credentials.password}
Run Code Online (Sandbox Code Playgroud)
FastAPI 示例与工作破折号应用程序。
from fastapi import FastAPI
from fastapi.middleware.wsgi import WSGIMiddleware
import dash
import dash_core_components as dcc
import dash_html_components as html
import pandas as pd
from datetime import datetime
# Create the Dash application, make …Run Code Online (Sandbox Code Playgroud)