2015-03-02 49 views
2

使用散景0.8.1,如何顯示長時間點,但在其中一部分開始「放大」,同時保持其餘數據可用於滾動?僅顯示散景中的Y軸的一部分

例如,考慮到以下時間系列(自1980年以來的IBM股票價格),我怎樣才能讓我的圖表最初顯示自2014年1月1日以來的價格?

示例代碼:

import pandas as pd 
import bokeh.plotting as bk 
from bokeh.models import ColumnDataSource 
bk.output_notebook() 
TOOLS="pan,wheel_zoom,box_zoom,reset,save" 

# Quandl data, too lazy to generate some random data 
df = pd.read_csv('https://www.quandl.com/api/v1/datasets/GOOG/NYSE_IBM.csv') 
df['Date'] = pd.to_datetime(df['Date']) 
df = df[['Date', 'Close']] 

#Generating a bokeh source 
source = ColumnDataSource() 
dtest = {} 
for col in df: 
    dtest[col] = df[col] 

source = ColumnDataSource(data=dtest) 

# plotting stuff ! 
p = bk.figure(title='title', tools=TOOLS,x_axis_type="datetime", plot_width=600, plot_height=300) 
p.line(y='Close', x='Date', source=source) 
bk.show(p) 

輸出:

IBM

,但我希望得到這個(你可以與盒縮放工具實現 - 但我想立即像這樣開始)

IBM

回答

3

因此,它看起來(從0.8.1開始)我們需要添加一些更方便的方法來設置具有日期時間值的範圍。這就是說,雖然這有點難看,但它目前適用於我:

import time, datetime 
x_range = (
    time.mktime(datetime.datetime(2014, 1, 1).timetuple())*1000, 
    time.mktime(datetime.datetime(2016, 1, 1).timetuple())*1000 
) 
p = bk.figure(
    title='title', tools=TOOLS,x_axis_type="datetime",  
    plot_width=600, plot_height=300, x_range=x_range 
)