我在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)
谢谢 !
我正在尝试使用 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 …
我有一个脚本来绘制用户想要查看的某些股票的价格:他可以通过下拉按钮选择股票,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)