当我向图表中添加 vline 时,效果非常好:
fig.add_vline(
x=pd.to_datetime('1970-01-01 00:00:00'),
line_dash='dot',
row=0)
Run Code Online (Sandbox Code Playgroud)
[![在此处输入图像描述][1]][1]
当我尝试在 vline 旁边添加注释文本时,我收到一条错误消息
fig.add_vline(
x=pd.to_datetime('1970-01-01 00:00:00'),
line_dash='dot',
annotation_text='15',
row=0)
Run Code Online (Sandbox Code Playgroud)
类型错误:不再支持带有时间戳的整数和整数数组的加/减。不用加/减
n,而是使用n * obj.freq
我正在测试 Plotly Dash 作为可能的仪表板工具。
我正在尝试运行文档中找到的图表之一:https ://plotly.com/python/bar-charts/
import dash
from dash import dcc
from dash import html
from dash.dependencies import Input, Output
import plotly.express as px
df = px.data.tips()
days = df.day.unique()
app = dash.Dash(__name__)
app.layout = html.Div([
dcc.Dropdown(
id="dropdown",
options=[{"label": x, "value": x} for x in days],
value=days[0],
clearable=False,
),
dcc.Graph(id="bar-chart"),
])
@app.callback(
Output("bar-chart", "figure"),
[Input("dropdown", "value")])
def update_bar_chart(day):
mask = df["day"] == day
fig = px.bar(df[mask], x="sex", y="total_bill",
color="smoker", barmode="group")
return fig
app.run_server(debug=True, port=8049)
Run Code Online (Sandbox Code Playgroud)
当我运行这个时,我收到一个错误。这是跟踪回调的结尾:
File "zmq/backend/cython/checkrc.pxd", line …Run Code Online (Sandbox Code Playgroud) 在我们的Dash图表中,我们试图隐藏浮动工具栏,该工具栏允许用户缩放,平移,保存,捕获等。要实现这一点,我知道在绘图中可以将displayModeBar参数设置为false。如何在Dash中完成?
如何转换这样的图形:
df1 = pd.read_excel("C:/Users/Tim/PycharmProjects/firstdash/Analysis.xlsx")
html.Div(
[
html.H3("Graph 1"),
dcc.Graph(
id="g1",
figure={
"data": [
go.Bar(
x=df1["Marketsegment"],
y=df1["test"],
)]})],)
Run Code Online (Sandbox Code Playgroud)
进入堆积的条形图。因此,一个包含总住宅和企业的酒吧以不同的颜色堆叠在一起。
我似乎无法以某种方式使其工作。
我发现的只是这种语法,不适用于我:
trace1 = go.Bar(
x=['giraffes', 'orangutans', 'monkeys'],
y=[20, 14, 23],
name='SF Zoo'
)
trace2 = go.Bar(
x=['giraffes', 'orangutans', 'monkeys'],
y=[12, 18, 29],
name='LA Zoo'
)
data = [trace1, trace2]
layout = go.Layout(
barmode='group'
)
Run Code Online (Sandbox Code Playgroud) 我有layout从第二个模块导入的应用程序,然后在返回app.layout到此选项卡内容时将其呈现在选项卡中。我有问题,布局是用输入的默认值导入的,当我输入填充了键并在选项卡之间更改时,当我单击回输入选项卡时,值会重置为默认值“x”。我设法通过在回调中第二次声明布局来解决这个问题,但它看起来不太好,并且需要为进一步的功能编写两次布局。有我的代码:
if 'manager' not in vars():
manager = Recognition('xx', 'xx')
print('defining manager')
lcheck = 0
while lcheck == 0:
layout = [
html.Div([
html.Div(
[
html.H3("Primary API key"),
dcc.Input(
id='primary-key',
value=manager.api_key,
placeholder='Enter a value...',
type='text',
style = {"width":"50%"}
),
html.H3("Private API key"),
dcc.Input(
id='private-key',
value=manager.api_secret,
placeholder='Enter a value...',
type='text',
style = {"width":"50%"}
),
],
),
html.Button('Submit', id='button', className='btn btn-primary'),
html.Div(id='output-hidden')
])
]
lcheck=1
@app.callback(
Output('primary-key', 'value'),
[Input('button', 'n_clicks')],
[State('primary-key', 'value'),
State('private-key', 'value')]
)
def update_output(n_clicks, value1, …Run Code Online (Sandbox Code Playgroud) 我想在一段时间后停止我的 Dash 程序的执行(当我关闭浏览器窗口时效果更好,尽管我怀疑这是否可行)。有没有办法通过python中断它?
我已经试过放一个
sys.exit()
Run Code Online (Sandbox Code Playgroud)
调用 app.run_server 后。据我所知很难
app.run_server
Run Code Online (Sandbox Code Playgroud)
处于无限循环中,因此我永远不会到达 sys.exit()
if __name__ == '__main__':
app.title = 'foo'
app.run_server(debug=False)
sys.exit("Bye!")
Run Code Online (Sandbox Code Playgroud) 我正在创建一个带有多个选项卡的仪表板,每个选项卡触发器和 .py 文件呈现不同的 plotly 对象元素。
例如,我的回调函数返回绘图、图表,我希望返回 Datatable。
我可以使用 go.Table 渲染 Pandas 数据框,如示例所示,但不能使用 DataTable,它是更新的并提供增强的用户体验。
import pandas as pd
import dash
from dash.dependencies import Input, Output, State
import dash_html_components as html
import dash_core_components as dcc
import plotly.plotly as py
from plotly import graph_objs as go
from plotly.graph_objs import *
import dash_table
import flask
from datetime import datetime as dt
from app import app
layout = html.Div([
html.Div([
dcc.Dropdown(
id='select',
options=[{'label': i, 'value': i} for i in List],
value='abc',
placeholder="xyz",
style={'width': '100%'}
), …Run Code Online (Sandbox Code Playgroud) 使用 PyInstaller 运行从 plotly-dash 代码生成的 exe 文件时,我不断收到以下错误。
AttributeError: 'FrozenImporter' object has no attribute 'filename'
Run Code Online (Sandbox Code Playgroud)
做了一些深入的检查,只能识别出当 dash 尝试导入 dash_renderer并从package.filename行检索文件名时发生的属性错误
尝试添加以下但仍然无法解决
我的情节破折号代码
external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']
app = dash.Dash(__name__, external_stylesheets=external_stylesheets)
app.layout = html.Div(children=[
html.H2(children='H-{} Meeting Dashboard'.format("SS"), style={'text-align':'center'}),
html.Div(children=[
html.Div('''Generated on {}'''.format(str(datetime.now())[:19]), style={'text-align':'center', 'font-size':'15px'})
], className='row')]
)
if __name__ == "__main__":
app.run_server(debug=True)
Run Code Online (Sandbox Code Playgroud)
用于生成 exe 文件的 PyInstaller 代码
\path\to\python37\python.exe -m PyInstaller app_short.py
Run Code Online (Sandbox Code Playgroud)
运行 .exe 文件时出错,遇到以下错误
my\directory>app_short.exe
2019-06-25 23:36:55 Imported all …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个 Flask 应用程序并有一个包含 Dash 应用程序的页面。Flask 应用程序将具有以下页面
Home (/)
Login (/login)
Logout (/logout)
Dashboard (/dashboard)
Run Code Online (Sandbox Code Playgroud)
只有 /dashboard 是从登录页面验证后重定向的 Dash 应用程序。一切正常。
但我需要从 /dashboard 导航栏返回到 Flask 应用程序页面。
dbc.NavbarSimple(
children=[
dbc.NavItem(dbc.NavLink("Home", href="/")),
dbc.NavItem(dbc.NavLink("Logout", href="/logout")),
dbc.NavItem(dbc.NavLink("Dashboard", href="/dashboard")),
],
brand="NavbarSimple",
brand_href="#",
color="primary",
dark=True,
)
Run Code Online (Sandbox Code Playgroud)
我尝试了上面的代码,我得到了导航栏。如果我将鼠标悬停在链接上,我会得到正确的链接,例如“ http://127.0.0.1:5000/logout ”,如果我点击该链接,浏览器中 URL 上的链接也会发生变化。但是页面永远不会加载并停留在同一个仪表板页面上。
有没有人遇到过类似的问题?我正在使用 Chrome 并尝试使用 IE。
我制作了一个基本的仪表板,如下所示,本文底部附有工作的最小示例。我想(但不知道如何)将滑块和(当前硬编码为 500 像素)居中放置大约 80% 的图形宽度,以响应浏览器窗口大小。我怎样才能做到这一点?谢谢!
[元信息:我很感激有关在哪里寻找/如何搜索此类主题的建议;我似乎在谷歌上搜索错误的东西,并且很难将 Dash 文档的各个部分放在一起] [
] 1
import dash
import dash_table
import dash_daq as daq
from dash.dependencies import Input, Output, State
import dash_core_components as dcc
import dash_html_components as html
import plotly.graph_objs as go
import numpy as np
# pydata stack
import pandas as pd
from sqlalchemy import create_engine
def makeplot(slider):
gobar=[go.Bar(
x=[1,2,3],
y=[1,slider,5],
name='I am {}'.format(slider)) ]
content= {
'data':gobar,
'layout':dict(title='Mygraph')
}
return content
## layout
external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']
app = dash.Dash(__name__, external_stylesheets=external_stylesheets)
## app
app.layout …Run Code Online (Sandbox Code Playgroud) plotly-dash ×10
python ×8
plotly ×5
python-3.x ×3
flask ×1
html ×1
pandas ×1
positioning ×1
pyinstaller ×1
slider ×1