2017-02-09 71 views
1

嘗試在我的數據集中的重要日期繪製垂直光線以突出顯示該日期之前/之後的趨勢。我知道如何繪製X軸不在日期時間內的光線,但是我一直在努力使x在datetime中的工作。下面是我的嘗試:當x軸處於日期時間時用散景繪製光線

from bokeh.plotting import figure, output_file, show 
from datetime import datetime as dt 
from math import pi 

p = figure(title = 'stuff', 
      x_axis = 'date', 
      y_axis = datapoints, 
      x_axis_type = "datetime", 
      tools='pan, wheel_zoom, box_zoom, reset, resize, previewsave', 
      plot_width=1000) 
#dates and data are lists containing datetime objects and y values 
p.line(dates, data, line_width=1) 
p.xaxis.major_label_orientation = pi/4 
p.ray(x = dt(year, month, day), y = 0, length = 0, angle_units = "deg", 
     angle = 90, color = 'black') 
output_file('data.html') 
show(p) 

這就產生了一個很長的堆棧跟蹤,並出現以下錯誤:

ValueError: expected an element of either String, Dict(String, Either(String, Instance(Transform), Instance(ColorMapper), Float)) or Float, got datetime.datetime(2014, 9, 18, 0, 0) 

是當X軸爲日期時間這根本不支持,或者有我錯過了在文檔中的東西嗎?

回答

0

想通了。我最初傳入了我的x軸的日期時間對象列表。我用毫秒的時間戳列表替換了該列表,然後以毫秒爲單位爲調出日期獲取了相應的時間戳,並用它來定義射線。 修改後的代碼:

p.line(lst_of_epoch_times_ms, data, line_width=1) 
p.xaxis.major_label_orientation = pi/4 
p.ray(x = ms_timestamp_callout, y = 0, length = 0, angle_units = "deg", 
     angle = 90, color = 'black') 

希望這有助於人誰在這個問題上絆倒。

相關問題