散景教程练习中的空白图

时间:2018-10-24 23:46:41

标签: python-3.x jupyter-notebook bokeh windows-10-desktop

我正在遵循bokeh教程,并且在“基本绘图”部分中,我无法显示绘图。我只得到轴。我想念什么?

代码如下:

df = pd.DataFrame.from_dict(AAPL)
weekapple = df.loc["2000-03-01":"2000-04-01"]
p = figure(x_axis_type="datetime", title="AAPL", plot_height=350, plot_width=800)
p.xgrid.grid_line_color=None
p.ygrid.grid_line_alpha=0.5
p.xaxis.axis_label = 'Time'
p.yaxis.axis_label = 'Value'
p.line(weekapple.date, weekapple.close)
show(p)

我明白了:

My result

我正在尝试完成练习here(第10代码单元-使用AAPL数据进行练习),到目前为止,我已经能够正确地遵循以前的所有代码。

谢谢!

2 个答案:

答案 0 :(得分:0)

您的数据框子视图为空:

In [3]: import pandas as pd
   ...: from bokeh.sampledata.stocks import AAPL
   ...: df = pd.DataFrame.from_dict(AAPL)
   ...: weekapple = df.loc["2000-03-01":"2000-04-01"]

In [4]: weekapple
Out[4]:
Empty DataFrame
Columns: [date, open, high, low, close, volume, adj_close]
Index: []

答案 1 :(得分:0)

如果这仍然有意义,则应选择以下方式:

df = pd.DataFrame.from_dict(AAPL)

# Convert date column in df from strings to the proper datetime format
date_format="%Y-%m-%d"
df["date"] = pd.to_datetime(df['date'], format=date_format)
# Use the same conversion for selected dates
weekapple = df[(df.date>=dt.strptime("2000-03-01", date_format)) & 
               (df.date<=dt.strptime("2000-04-01", date_format))]

p = figure(x_axis_type="datetime", title="AAPL", plot_height=350, plot_width=800)
p.xgrid.grid_line_color=None
p.ygrid.grid_line_alpha=0.5
p.xaxis.axis_label = 'Time'
p.yaxis.axis_label = 'Value'
p.line(weekapple.date, weekapple.close)
show(p)

要使其正常工作,在此代码之前,我(在Jupyter笔记本中):

import numpy  as np
from bokeh.io import output_notebook, show
from bokeh.plotting import figure
import bokeh
import pandas as pd
from datetime import datetime as dt

bokeh.sampledata.download()
from bokeh.sampledata.stocks import AAPL

output_notebook()

https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.loc.html.loc所述,用于具有索引(或布尔列表)的操作; date不在数据框的索引中(它是常规列)。

我希望这会有所帮助。