In [ ]:
import bokeh
bokeh.load_notebook()

In [ ]:
from collections import OrderedDict

from bokeh.charts import Scatter
from bokeh.sampledata.iris import flowers

setosa = flowers[(flowers.species == "setosa")][["petal_length", "petal_width"]]
versicolor = flowers[(flowers.species == "versicolor")][["petal_length", "petal_width"]]
virginica = flowers[(flowers.species == "virginica")][["petal_length", "petal_width"]]

xyvalues = OrderedDict([("setosa", setosa.values), ("versicolor", versicolor.values), ("virginica", virginica.values)])

scatter = Scatter(xyvalues, title="iris dataset, dict_input", x_label="petal_length",
                  y_label="petal_width", legend='top_left', notebook=True)
scatter.show()

In [ ]:
groupped_df = flowers[["petal_length", "petal_width", "species"]].groupby("species")
scatter = Scatter(groupped_df, title="iris dataset, dict_input", x_label="petal_length",
                  y_label="petal_width", legend='top_left', notebook=True)
scatter.show()

In [ ]:
import pandas as pd
from bokeh.plotting import output_notebook, show

output_notebook()
pdict = OrderedDict()
for i in groupped_df.groups.keys():
    labels = groupped_df.get_group(i).columns
    xname = labels[0]
    yname = labels[1]
    x = getattr(groupped_df.get_group(i), xname)
    y = getattr(groupped_df.get_group(i), yname)
    pdict[i] = list(zip(x, y))

df = pd.DataFrame(pdict)
scatter = Scatter(df, title="iris dataset, dict_input", x_label="petal_length",
                  y_label="petal_width", legend='top_left', notebook=True)
show(scatter)

In [ ]:
scatter = Scatter(list(xyvalues.values()), title="iris dataset, dict_input", x_label="petal_length",
                  y_label="petal_width", legend='top_left', notebook=True)
show(scatter)

In [ ]: