Вы должны преобразовать содержимое столбца Даты в Даты.Панды и Боке не знают, что эти значения являются датами, и обрабатывают их как строки, если вы забудете это сделать.Кроме того, x_axis_type должен быть datetime вместо date.
import pandas as pd
from bokeh.plotting import figure, show
from bokeh.palettes import Spectral3
data = {'Date': ['08-11-2016', '08-11-2016', '12-06-2016', '11-08-2015', '11-10-2015', '09-06-2014', '09-02-2014', '09-01-2014', '09-06-2014', '09-03-2014', '09-05-2014', '09-07-2014', '15-04-2017', '05-12-2016', '22-09-2015', '26-12-2015', '02-01-2015', '02-01-2015', '28-10-2016'],
'Sales': [261.96, 731.94, 14.62,957.5775, 22.368, 48.68, 7.28, 907.152, 18.504, 114.9, 1706.184, 911.424, 15.552, 407.976, 68.81, 2.544, 665.88, 55.5, 8.56],
'Category': ['Furniture', 'Furniture', 'Office Supplies', 'Furniture', 'Office Supplies', 'Furniture', 'Office Supplies', 'Technology', 'Office Supplies', 'Office Supplies', 'Furniture', 'Technology', 'Office Supplies', 'Office Supplies', 'Office Supplies', 'Office Supplies', 'Office Supplies', 'Office Supplies', 'Office Supplies']}
df = pd.DataFrame.from_dict(data)
df['Date'] = pd.to_datetime(df['Date'])
df = df.sort_values(by='Date')
categories = df['Category'].unique()
p = figure(x_axis_type="datetime")
for cat, color in zip(categories, Spectral3):
df_line = df.loc[df['Category'] == cat]
p.line(x='Date', y='Sales', line_width=2, source=df_line, legend=cat, color=color)
p.legend.click_policy="hide"
show(p)
![enter image description here](https://i.stack.imgur.com/RRTOE.png)
(Технологические и офисные принадлежности также нанесены на график, их просто трудно увидетьиз-за короткого диапазона х / цвет)