散景中的错误绘图

问题描述 投票:0回答:1

[运行下面的代码时,它显示了错误的图。

from pandas_datareader import data
from datetime import datetime as dt
from bokeh.plotting import figure, show, output_file

st=dt(2016,3,1)
end=dt(2016,3,10)
df=data.DataReader(name="GOOG",data_source="yahoo",start=st,end=end)
p=figure(x_axis_type="datetime",height=300,width=1000)
p.title.text="CandleStick graph"
p.rect(df.index[df.Close > df.Open],(df.Close+df.Open)/2,12*60*60*1000,abs(df.Close-df.Open))
show(p)
python pandas bokeh pandas-bokeh
1个回答
0
投票

所有数据列的长度必须相同,但是您传递的是比其他短的一列:

df.index[df.Close > df.Open]

实际上是在运行代码,Bokeh甚至还告诉您了这一点:

BokehUserWarning: ColumnDataSource's columns must be of the same length. 
Current lengths: ('height', 9), ('x', 5), ('y', 9)

您仅传递x的5个坐标,而其他所有传递的9个坐标。所有参数都需要匹配。您可以:

  • 根本不执行df.index上的子设置

  • 以相同的方式细分所有其他参数

((供以后参考:您应该总是在您的SO问题中包括任何错误或警告消息,例如上面的错误消息-并且,如@sjc所述,请详细描述问题,而不仅限于陈述“是错误的“)

© www.soinside.com 2019 - 2024. All rights reserved.