Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I show legend for different colors in bokeh scatter plot?

This is my plot.
I need to show the legend for the different colors used.
How do I do that?

My code for the plot:

def mscatter(p, x, y, c,typestr,source):
    p.scatter(x, y, marker=typestr,
            line_color="#6666ee", fill_color=c, fill_alpha=0.5, size=y*1.5,source = source)

p = figure(title="CGPA of 4th year students",tools=[hover])
mscatter(p, xdata, ydata, colors,"circle",source)
show(p)
like image 638
n00b Avatar asked Oct 19 '22 05:10

n00b


1 Answers

here is sample bokeh documentation on adding legends

You will have to modify as you see fit

from collections import OrderedDict
from bokeh.charts import Scatter, output_file, show

# (dict, OrderedDict, lists, arrays and DataFrames of (x, y) tuples are valid inputs)
xyvalues = OrderedDict()
xyvalues['python'] = [(1, 2), (3, 3), (4, 7), (5, 5), (8, 26)]
xyvalues['pypy'] = [(1, 12), (2, 23), (4, 47), (5, 15), (8, 46)]
xyvalues['jython'] = [(1, 22), (2, 43), (4, 10), (6, 25), (8, 26)]

scatter = Scatter(xyvalues, title="Scatter", legend="top_left", ylabel='Languages')

output_file('scatter.html')
show(scatter)

the above code will result in the following picture:

scatterplot

like image 197
Rachel Gallen Avatar answered Oct 31 '22 20:10

Rachel Gallen