2017-08-04 88 views
2

我看了這個幾乎每一個其他計算器的問題,但我不能讓我的日期在工具提示中顯示:散景TimeSeries工具提示日期顯示爲:?

dfx = dfx[['FullDate','DLM','DGO']] 
dfx['Date'] = pd.to_datetime(dfx['FullDate']) 
dfx['FullDate'] = dfx['FullDate'].astype(str) 

p = TimeSeries(dfx, x='Date', tools='hover',plot_width=900, plot_height=350, xlabel='Date' 
       ,ylabel='Cumulative Returns',source=ColumnDataSource(dfx)) 

hover = p.select(dict(type=HoverTool)) 
hover.tooltips = [("Date", "@FullDate"),("Value", "$y{1.111}")] 

show(p) 

產生以下:

enter image description here

我可以顯示我所做的代碼的所有變體,但它們都產生相同的結果。

我的dfx['FullDate']列都是字符串。我覺得我失去了一些明顯的東西。

感謝

+0

您正在使用什麼版本的散景?你還檢查了瀏覽器控制檯中發生了什麼? JavaScript錯誤通常記錄在那裏。我的猜測是你的字符串可能會被編碼,使得Bokeh可能不知道如何處理它們。 –

+0

使用'bokeh == 0.12.5',我不完全確定如何檢查我的瀏覽器控制檯,但我會說當我不在x軸上繪製日期時間對象時,標籤以某種方式起作用,但是字符串改爲。在這種情況下,'hover.tooltips = [(「Date」,「$ x」),(「Return」,「$ y {1.111}」)]'讓我得到我想要的,但它將日期字符串聚合在一起x軸,所以不是一個真正的解決方案。當我用datetime x軸使用上面的時候,我得到的是我認爲的紀元時間,也沒有用(雖然略好於'???') –

+0

你應該更新到最新版本的散景(12.6)'conda安裝-c散景「我認爲他們可能已經修復了這個bug。 –

回答

0

首先是安裝嘗試背景虛化的最新版本,看看是否出現這種情況解決問題。

conda install -c bokeh bokeh

嘗試格式化您的DATATIME對象與Bokehs's HoverTool formatters字符串;

dfx = dfx[['FullDate','DLM','DGO']] 
dfx['Date'] = pd.to_datetime(dfx['FullDate']) 

p = TimeSeries(dfx, x='Date', tools='hover',plot_width=900, plot_height=350, xlabel='Date' 
       ,ylabel='Cumulative Returns',source=ColumnDataSource(dfx)) 

hover = p.select(dict(type=HoverTool)) 
hover.tooltips = [("Date", "@Date{'%F'}"),("Value", "$y{1.111}")] 
hover.formatters = { "Date": "datetime"} 

show(p) 
+0

嘗試過,但由於某種原因,它沒有奏效。 'FullDate'包含這種格式的字符串:'「2017-08-07」',你會認爲這是相當標準的散景拾起... –

+0

由於你更新了Bokeh你清除了瀏覽器緩存並重新加載了頁面? –

+0

剛剛更新並重新啓動jupyter /清除緩存......奇怪的仍然是同一個問題。我也嘗試過'hover.tooltips = [(「Date」,「@Date」),(「Va​​lue」,「$ y {1.111}」)]'但這也讓我'???',只有當我做'hover.tooltips = [(「Date」,「$ x」),(「Va​​lue」,「$ y {1.111}」)]'我能看到什麼。我是否錯誤地設置了來源?它似乎能夠提取工具提示的軸值,但不能獲取源數據幀值 –