Sto cercando di utilizzare Bokeh per tracciare un dataframe Pandas
con una colonna DateTime
contenente anni e uno numerico. Se DateTime
è specificato come x
, il comportamento è il previsto (anni nell'asse x). Tuttavia, se io uso set_index
per trasformare la colonna DateTime
nell'indice del dataframe e quindi specificare solo il nel TimeSeries
ottengo il tempo in millisecondi nell'asse x. Un esempio minimoTimeSeries in Bokeh utilizzando un dataframe con indice
import pandas as pd
import numpy as np
from bokeh.charts import TimeSeries, output_file, show
output_file('fig.html')
test = pd.DataFrame({'datetime':pd.date_range('1/1/1880', periods=2000),'foo':np.arange(2000)})
fig = TimeSeries(test,x='datetime',y='foo')
show(fig)
output_file('fig2.html')
test = test.set_index('datetime')
fig2 = TimeSeries(test,y='foo')
show(fig2)
È questo il comportamento previsto o un bug? Mi aspetterei la stessa immagine con entrambi gli approcci.
Saluti !!
Questo sembra incoerente anche a me. È interessante notare che, dopo la riga 'fig2 = TimeSeries (test, y = 'foo')', 'test' è stata modificata per includere sia un indice con i dati' datetime' sia una nuova colonna chiamata 'index'. È un po 'sorprendente che il semplice tracciamento di un frame di dati altererebbe i dati. – Jake
Buona presa, non l'avevo notato. Ho appena segnalato questo come [un problema] (https://github.com/bokeh/bokeh/issues/3763). – manu