标签: plotly-dash

每个子图旁边的情节图例,Python

在注意到目前这个问题没有答案后,我想知道是否有人知道如何:

  1. 每个子图都有一个图例。
  2. 按名称对图例进行分组。(例如:对于不同的子图,都具有相同的两条曲线但具有不同的值)。

这是我的 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)

python python-2.7 plotly plotly-dash

9
推荐指数
1
解决办法
1万
查看次数

带有单击事件的基本按钮的 Dash 核心组件?

我正在尝试为不同的信息集创建一个具有多个选项卡的应用程序。我的第一个想法是使用 html 按钮,但没有 dash_core_component 用于此,而且我找不到任何可以在其位置使用的文档。基本上,当我点击一个按钮(或链接)时,我想获得一个带有按钮 id 的“clicked”事件,以便我可以重绘所选页面的布局。

有没有办法用现有的组件来做到这一点?是否有关于如何创建可以连接到回调系统的新组件的文档?我觉得我一定遗漏了一些明显的东西,但经过大量搜索后我没有找到任何东西。

谢谢!

plotly-dash

8
推荐指数
2
解决办法
2万
查看次数

情节仪表板是否在线发布数据?

我对通过烧瓶本地托管的情节和破折号的隐私感到困惑.

给定了一个向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.Figuredash_core_components.Graph?服务于此数字的数据是否会在线发布?或者我是否必须指定使用plotly.offline.plot以确保它不连接到外部服务器,类似于使用plotly的笔记本?

python plotly plotly-dash

8
推荐指数
2
解决办法
2553
查看次数

Python Dash:自定义 CSS

我想将 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) 加载。但是我希望能够离线加载这个应用程序,所以这不是一个选项。

css python plotly-dash

8
推荐指数
2
解决办法
2万
查看次数

在 Dash 框架中动态添加 HTML 输入

我是 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)

html python dynamic python-2.7 plotly-dash

8
推荐指数
1
解决办法
1180
查看次数

无法在python中导入破折号

我无法运行任何破折号程序。我得到了错误。

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 文件,而如果任何文件中包含导入破折号,我不能在该目录的终端中导入破折号。附上的图片会帮助你。在两个不同的终端、两个不同的目录中导入破折号

python plotly plotly-dash

8
推荐指数
4
解决办法
9035
查看次数

如何将以Dash编写的网站显示为静态PDF(Python)?

我想将我在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 flask plotly plotly-dash

8
推荐指数
1
解决办法
2277
查看次数

悬停工具,用于Plotly滑块小部件(Python)

我正在使用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)

python plotly plotly-dash

8
推荐指数
1
解决办法
153
查看次数

更改 Flask/Dash 中的图标

尝试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负载正确?

flask plotly-dash

8
推荐指数
1
解决办法
6112
查看次数

Plotly:如何仅将垂直和水平线(十字准线)显示为 hoverinfo?

我想在 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)

python plotly plotly-dash

8
推荐指数
2
解决办法
4378
查看次数

标签 统计

plotly-dash ×10

python ×8

plotly ×6

flask ×2

python-2.7 ×2

css ×1

dynamic ×1

html ×1