我有一个已定义的值字典,其中key是字符串形式的日期,值是浮点数组。
字典看起来像这样:
dict =
{'2017-03-23': [1.07874, 1.07930, 1.07917, 1.07864,],
'2017-03-27': [1.08382, 1.08392, 1.08410, 1.08454],
'2017-03-24': [1.07772, 1.07721, 1.07722, 1.07668]}
我想在Bokeh line_chart上将每个日期显示为单独的一行。由于日期间隔会随着时间的推移而变化,我不想简单地为每个日期定义p1.line,p2.line,p3.line(静态集),因为绘制日期的数量会随着时间而变化。
我试图按照这里的教程进行操作:http://bokeh.pydata.org/en/0.9.3/docs/user_guide/charts.html但我一直在努力并且遇到错误。
这是我的代码:
#input dates at this occasion
dates = ['2017-03-27','2017-03-24', '2017-03-23']
#dataframe is taken from input and contains columns date,time,close and other columns that I am not using
df
#I create a dictionary of dataframe in the structure described above
dict = {k: list(v) for k, v in df.groupby("date")["close"]}
#i want to plot chart
output_file("chart2.html")
p = figure(title="Dates line charts", x_axis_label='Index', y_axis_label='Price')
p = TimeSeries(dict, index='Index', legend=True, title="FX", ylabel='Price Prices')
show(p)
我收到此错误:
AttributeError:图表的意外属性'index',可能的属性在上面,background_fill_alpha,background_fill_color,下面,border_fill_alpha,border_fill_color,css_classes,disabled,extra_x_ranges,extra_y_ranges,h_symmetry,height,hidpi,inner_height,inner_width,js_callbacks ,left,lod_factor,lod_interval,lod_threshold,lod_timeout,min_border,min_border_bottom,min_border_left,min_border_right,min_border_top,name,outline_line_alpha,outline_line_cap,outline_line_color,outline_line_dash,outline_line_dash_offset,outline_line_join,outline_line_width,plot_height,plot_width,renderers,right,sizing_mode,tags,title ,title_location,tool_events,toolbar,toolbar_location,toolbar_sticky,v_symmetry,webgl,width,x_mapper_type,x_range,xlabel,xscale,y_mapper_type,y_range,ylabel或yscale
感谢您的帮助。
答案 0 :(得分:0)
您正在查看非常旧的文档(0.9.3)。散景时间序列can be found here的最新文档(0.12.4)。
如您所见,Timeseries不再接受index
参数。可用参数是
数据(list(list),numpy.ndarray,pandas.DataFrame,list(pd.Series)) - 一个2d数据源,每个阶梯线都有数据列。
x (str或 list(str),optional) - 指定用于x轴的变量
y (str 或list(str),optional) - 指定用于y轴的变量
builder_type (str或Builder,可选) - 要使用的构建器类型 制作渲染器。支持的选项是'line','step'或 “点”。
只需按照最新文档中给出的示例进行操作即可,您不应遇到同样的问题。