'Adds a glyph to the plot with associated data sources and ranges.
This function will take care of creating and configuring a Glyph object,
and then add it to the plot\'s list of renderers.
Args:
source (DataSource) : a data source for the glyphs to all use
glyph (Glyph) : the glyph to add to the Plot
Keyword Arguments:
Any additional keyword arguments are passed on as-is to the
Glyph initializer.
Returns:
GlyphRenderer'

def add_glyph(self, source_or_glyph, glyph=None, **kw):

    if (glyph is not None):
        source = source_or_glyph
    else:
        (source, glyph) = (ColumnDataSource(), source_or_glyph)
    if (not isinstance(source, DataSource)):
        raise ValueError("'source'    argument    to    add_glyph()    must    be    DataSource    subclass")
    if (not isinstance(glyph, Glyph)):
        raise ValueError("'glyph'    argument    to    add_glyph()    must    be    Glyph    subclass")
    g = GlyphRenderer(data_source=source, glyph=glyph, **kw)
    self.renderers.append(g)
    return g
