在注意到目前这个问题没有答案后,我想知道是否有人知道如何:
这是我的 Plotly 脚本:
from plotly import tools
import plotly.plotly as py
import plotly.graph_objs as go
import plotly
nom_plot=[]
trace1 = go.Scatter(x=[1, 2, 3], y=[4, 5, 6],name='1',showlegend=True)
nom_plot.append('GRAPH 1')
trace2 = go.Scatter(x=[20, 30, 40], y=[50, 60, 70],name='2',yaxis='y2')
nom_plot.append('GRAPH 2')
trace3 = go.Scatter(x=[300, 400, 500], y=[600, 700, 800],showlegend=False)
nom_plot.append('GRAPH 3')
trace4 = go.Scatter(x=[4000, 5000, 6000], y=[7000, 8000, 9000])
nom_plot.append('GRAPH 4')
trace5 = go.Scatter(x=[20, 30, 40], y=[50, 60, 70])
nom_plot.append('GRAPH 5')
print(trace1)
fig = tools.make_subplots(rows=4, cols=2, subplot_titles=(nom_plot))
fig.append_trace(trace1, 1, 1) …Run Code Online (Sandbox Code Playgroud) 我正在尝试为不同的信息集创建一个具有多个选项卡的应用程序。我的第一个想法是使用 html 按钮,但没有 dash_core_component 用于此,而且我找不到任何可以在其位置使用的文档。基本上,当我点击一个按钮(或链接)时,我想获得一个带有按钮 id 的“clicked”事件,以便我可以重绘所选页面的布局。
有没有办法用现有的组件来做到这一点?是否有关于如何创建可以连接到回调系统的新组件的文档?我觉得我一定遗漏了一些明显的东西,但经过大量搜索后我没有找到任何东西。
谢谢!
我对通过烧瓶本地托管的情节和破折号的隐私感到困惑.
给定了一个向Flask托管仪表板的项目给我本地网络上的用户:
如果我根据部署用户指南(https://plot.ly/dash/deployment)使用Flask服务器部署Dash应用程序,即:
import flask
import dash
server = flask.Flask(__name__)
app = dash.Dash(__name__, server=server)
Run Code Online (Sandbox Code Playgroud)
如果我向破折号应用程序提供数据,是否可以在任何地方在线发布(即情节网站)?
如果我创建一个图形,如plotly.graph_objs.Figure在dash_core_components.Graph?服务于此数字的数据是否会在线发布?或者我是否必须指定使用plotly.offline.plot以确保它不连接到外部服务器,类似于使用plotly的笔记本?
我想将 CSS 样式表或<style>块提供给 Python Dash 应用程序。我试图在下面做这两项,但都不适合我。应用程序加载正常,但文本保持黑色,而不是绿色。
import dash
from dash.dependencies import Input, Output
import dash_core_components as dcc
import dash_html_components as html
import plotly.graph_objs as go
from flask import send_from_directory
# define the app
app = dash.Dash()
app.head = [html.Link(rel='stylesheet', href='./static/stylesheet.css'),
('''
<style type="text/css">
h1 {
color:green;
}
</style>
''')]
app.layout = html.Div(html.H1('Hello World!'))
if __name__ == '__main__':
app.run_server(debug=True)
Run Code Online (Sandbox Code Playgroud)
里面./static/stylesheet.css是一个只有这个的文件:
h1{
color:green;
}
Run Code Online (Sandbox Code Playgroud)
我试过只有样式表或<style>标签,但它们都没有将 h1 标签变成绿色。
这是我为解决我的问题所做的研究:
https://github.com/plotly/dash/pull/171
https://dash.plot.ly/external-resources
https://github.com/plotly/dash-recipes/blob/master/dash-local-css-link.py
我唯一没有尝试过的(那些链接建议)是从外部链接 (CDN) 加载。但是我希望能够离线加载这个应用程序,所以这不是一个选项。
我是 Dash 的新手,我需要一些帮助。我需要创建一个动态数量的输入,但我不知道如何为每个滑块组件绑定一个动态数量的回调。我只能创建动态数量的滑块,但正如您在代码中看到的,我需要对回调的数量进行硬编码。有没有更好的方法来使它更具动态性?
@app.callback(
Output('slider-container', 'children'),
[Input('button', 'n_clicks')])
def add_sliders(n_clicks):
return \
html.Div([
html.Div([
html.Div(dcc.Slider(id='slider-{}'.format(i))),
dcc.Input(
id='input-{}'.format(i),
placeholder='Graph Name',
type='text',
value=''
),
html.Div(id='output-{}'.format(i), style={'marginTop': 30})
]) for i in range(n_clicks)]
)
# up to 10 sliders
for i in range(10):
@app.callback(
Output('slider-{}'.format(i), 'children'),
[Input('slider-{}'.format(i), 'value'),
Input('input-{}'.format(i), 'value')])
def update_output(slider_i_value, input_i_value):
return str(slider_i_value) + str(input_i_value)
Run Code Online (Sandbox Code Playgroud) 我无法运行任何破折号程序。我得到了错误。
Dash was not successfully imported. Make sure you don't have a file named
'dash.py' in your current directory.
Run Code Online (Sandbox Code Playgroud)
还要检查一下,我尝试在终端中从 python 导入破折号,令人惊讶的是我可以在终端中导入破折号,其中目录不包含带有破折号导入的 .py 文件,而如果任何文件中包含导入破折号,我不能在该目录的终端中导入破折号。附上的图片会帮助你。
我想将我在dash中制作的网站导出为静态PDF.这是我网站的代码(它只是一个包含3列的图表):
import dash
import dash_core_components as dcc
import dash_html_components as html
import pdfkit
from flask import Flask, render_template, make_response
app = dash.Dash()
app.layout = html.Div(
className="three columns",
children=html.Div([
dcc.Graph(
id='right-top-graph',
figure={
'data': [{
'x': [1, 2, 3],
'y': [3, 1, 2],
'type': 'bar'
}],
'layout': {
'height': 400,
'margin': {'l': 10, 'b': 20, 't': 0, 'r': 0}
}
}
),
])
)
app.css.append_css({
'external_url': 'https://codepen.io/chriddyp/pen/bWLwgP.css'
})
if __name__ == '__main__':
app.run_server(debug=True)
Run Code Online (Sandbox Code Playgroud)
我尝试使用pdfkit将此代码添加到我的脚本中,但它不起作用(收到一个错误,告诉我render_template()需要1个位置参数但是给出了2个):
rendered = render_template('pdf_template.html',app)
pdf = pdfkit.from_string(rendered, False)
response …Run Code Online (Sandbox Code Playgroud) 我正在使用python 3.6.5和plotly 3.9.0创建交互式折线图,用户可以使用游标幻灯片更改范围。
我想向范围滑块添加一个悬停工具,以便当用户移动滑块时,悬停图标会在用户释放鼠标之前说出新的日期范围。
我认为这是bokeh的默认设置,但我已经放弃了,转而使用散点图。
能做到吗?
下面是我尝试做的一个最小工作示例。
import dash
import dash_core_components as dcc
import dash_html_components as html
import plotly.graph_objs as go
import plotly.plotly as py
from datetime import datetime
import pandas as pd
import numpy as np
np.random.seed(10)
df = pd.DataFrame({
'date':pd.date_range(start='1/1/2000', periods=200),
'x': np.random.choice(range(100),200)
})
app = dash.Dash()
app.layout = html.Div([
dcc.Graph(
id='graph',
),
dcc.RangeSlider(
id='slider',
min = df['date'].min().timestamp(),
max = df['date'].max().timestamp(),
value=[df.iloc[-101]['date'].timestamp(), df.iloc[-1]['date'].timestamp()]
)
])
@app.callback(
dash.dependencies.Output('graph','figure'),
[dash.dependencies.Input('slider','value')])
def update_figure(value):
lBound = pd.to_datetime(value[0], unit='s')
uBound = pd.to_datetime(value[1], unit='s') …Run Code Online (Sandbox Code Playgroud) 尝试favicon加载我遵循了互联网的建议:
server = Flask(__name__, static_folder='static')
app = dash.Dash(external_stylesheets=external_stylesheets, server=server)
app.css.config.serve_locally = False
app.scripts.config.serve_locally = True
@server.route('/favicon.ico')
def favicon():
print('Server root path', server.root_path)
return send_from_directory(os.path.join(server.root_path, 'static'),
'dice.ico', mimetype='image/vnd.microsoft.icon')
...
app.run_server(debug=True)
Run Code Online (Sandbox Code Playgroud)
如果我浏览到favicon,我会看到它:
http://www.example.com/favicon.ico
Run Code Online (Sandbox Code Playgroud)
但是,当我浏览到
http://www.example.com
Run Code Online (Sandbox Code Playgroud)
我看到dash带有自己描述的默认图标。我如何确保我自己的favicon负载正确?
我想在 plotly dash 中绘制一个带有两个子图的图表。我的整个图表如下所示:
import pandas as pd
import numpy as np
import dash
import dash_core_components as dcc
import dash_html_components as html
import plotly.graph_objs as go
from plotly.subplots import make_subplots
df = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/finance-charts-apple.csv').iloc[:60]
fig = make_subplots(rows=2, cols=1, row_heights=[0.8, 0.2], vertical_spacing=0)
fig.add_trace(go.Candlestick(open=df['AAPL.Open'], high=df['AAPL.High'], low=df['AAPL.Low'], close=df['AAPL.Close'],
increasing_line_color='#0384fc', decreasing_line_color='#e8482c', name='AAPL'), row=1, col=1)
fig.add_trace(go.Scatter(y=np.random.randint(20, 40, len(df)), marker_color='#fae823', name='VO', hovertemplate=[]), row=2, col=1)
fig.update_layout({'plot_bgcolor': "#21201f", 'paper_bgcolor': "#21201f", 'legend_orientation': "h"},
legend=dict(y=1, x=0),
font=dict(color='#dedddc'), dragmode='pan', hovermode='x unified',
margin=dict(b=20, t=0, l=0, r=40))
fig.update_xaxes(showgrid=False, zeroline=False, rangeslider_visible=False, showticklabels=False,
showspikes=True, spikemode='across', spikesnap='data', …Run Code Online (Sandbox Code Playgroud)