我想给一张熊猫数据框给Bokeh绘制多行的折线图。 x轴应该是df.index,每个df.columns应该是一个单独的行。用散景和熊猫绘制多条线
这是我还是执意想做什么:
import pandas as pd
import numpy as np
from bokeh.plotting import figure, show
toy_df = pd.DataFrame(data=np.random.rand(5,3), columns = ('a', 'b' ,'c'), index = pd.DatetimeIndex(start='01-01-2015',periods=5, freq='d'))
p = figure(width=1200, height=900, x_axis_type="datetime")
p.multi_line(df)
show(p)
但是,我得到的错误:
RuntimeError: Missing required glyph parameters: ys
相反,我已经成功地做到这一点:
import pandas as pd
import numpy as np
from bokeh.plotting import figure, show
toy_df = pd.DataFrame(data=np.random.rand(5,3), columns = ('a', 'b' ,'c'), index = pd.DatetimeIndex(start='01-01-2015',periods=5, freq='d'))
ts_list_of_list = []
for i in range(0,len(toy_df.columns)):
ts_list_of_list.append(toy_df.index)
vals_list_of_list = toy_df.values.T.tolist()
p = figure(width=1200, height=900, x_axis_type="datetime")
p.multi_line(ts_list_of_list, vals_list_of_list)
show(p)
那(无意地)完成这项工作,但它对所有3条线都使用相同的颜色,如下所示: 个
问题:
1)我怎么能传递一个数据帧大熊猫对背景虚化的multi_line?
2)如果不能直接使用,我该如何处理数据帧数据,以便multi_line将创建每行不同的颜色?
在此先感谢
注意,使用multi_line用于绘制数据帧的列的一个严重的缺点是,它是不会轻易可以添加每个列的图例项。请参阅[本问答](http://stackoverflow.com/questions/31419388/bokeh-how-to-add-legend-to-figure-created-by-multi-line-method) – jhin
是否可以添加悬停工具到这样一个数字? –
@NicoleGoebel:这可能是有用的:http://stackoverflow.com/questions/31496628/in-bokeh-how-do-i-add-tooltips-to-a-timeseries-chart-hover-tool – bs123