小编ele*_*nor的帖子

使用python以图形方式离线更新图表

我在Jupyter上使用plotly offline.我正在绘制曲线:

from plotly.offline import download_plotlyjs, init_notebook_mode, plot, iplot
from plotly.graph_objs import *
import datetime as dt

list_date = [dt.datetime(2016,1,1).date(), dt.datetime(2016,1,2).date(), dt.datetime(2016,1,3).date(), dt.datetime(2016,1,4).date()]
data = []
for i in range(3) : 
    list = [i/2+1, i/2+2, i/2+3, i/2+4]
    data.append(Scatter(x=list_date, y=list, name='y'+str(i)))
figure = Figure(data=data)
iplot(figure)
Run Code Online (Sandbox Code Playgroud)

而且我得到了一个非常好的图表!后者用户想要在其上添加条形图(除了已存在的2条线).

list_bar = [0.5, 1.5, 2.5, 3.5]
data = [Bar(x=list_date, y=list_bar, name='bar')]
figure.update(data=data)
iplot(figure)
Run Code Online (Sandbox Code Playgroud)

但我只有条形图,而不是前两行.如何离线相当于在线功能fileopt ='append'?

py.plot(data, filename='append plot', fileopt='append') 
Run Code Online (Sandbox Code Playgroud)

谢谢 !

python plotly

10
推荐指数
1
解决办法
1843
查看次数

在破折号中将值从一页传递到另一页

我正在尝试使用 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 …

python plotly plotly-dash

5
推荐指数
1
解决办法
1223
查看次数

DropDown不使用Bokeh

我有一个脚本来绘制用户想要查看的某些股票的价格:他可以通过下拉按钮选择股票,Bokeh将相应地绘制曲线.(我在jupyter笔记本上工作):

from bokeh.io import output_notebook, show
from bokeh.plotting import figure
output_notebook()
Run Code Online (Sandbox Code Playgroud)

我的代码如下:

from bokeh.models import  Callback, ColumnDataSource, Select,CustomJS
from bokeh.plotting import figure, show, gridplot
from bokeh.models.widgets.layouts import VBox
import pandas as pd

shares = ['AAPL', 'MSFT', 'IBM', 'All']

AAPL = pd.read_csv("http://ichart.yahoo.com/table.csv?s=AAPL&a=0&b=1&c=2000&d=0&e=1&f=2015",parse_dates=['Date'])
MSFT = pd.read_csv("http://ichart.yahoo.com/table.csv?s=MSFT&a=0&b=1&c=2000&d=0&e=1&f=2015",parse_dates=['Date'])
IBM = pd.read_csv("http://ichart.yahoo.com/table.csv?s=IBM&a=0&b=1&c=2000&d=0&e=1&f=2015",parse_dates=['Date'])

max_price = max(AAPL['Adj Close'].max(), MSFT['Adj Close'].max(), IBM['Adj Close'].max()) + 10
min_date = min(AAPL['Date'].min(), MSFT['Date'].min(), IBM['Date'].min())
max_date = max(AAPL['Date'].max(), MSFT['Date'].max(), IBM['Date'].max())

myplot = figure(title="Share price", x_axis_type="datetime", x_range=[min_date,max_date],y_range=[0,max_price],
        background_fill='#FFF5EE', plot_width=900, plot_height = 400, outline_line_color= None) …
Run Code Online (Sandbox Code Playgroud)

python bokeh jupyter-notebook

4
推荐指数
1
解决办法
1869
查看次数

标签 统计

python ×3

plotly ×2

bokeh ×1

jupyter-notebook ×1

plotly-dash ×1