When you say add more plots on the last line what exactly do you mean?
I’m afraid I’m just not that familiar with seaborn so I’ve no idea if this is a quirk related to that or not. I think one of the oddities is that what you really need from the
regplot function is a return of the objects it creates (paths, polys, lines etc.), the return of an axis is unhelpful.
An ugly fix if you only have one line plotted on this axis is to get the object reference with the following function (it doesn’t have to be a function but this whole method of working is a bit backwards). There must be a better way to get that reference so consider your options. This is a bit sketchy for a proper project.
# warning! only gets first returned line
for item in axis.get_children():
if isinstance(item, matplotlib.lines.Line2D):
rfit_line = get_line_from_axis(ax)
# I think you should be able to simply tag it on.
# Without having access to the same data/objects you do I cannot test.
ax.legend((dot, dot2, dot3, rfit_line), ('18-34','35-49','50+', 'regression_fit'))
Perhaps a more sensible alternative is creating a proxy just for the legend (or add two separate legends). There are some more advanced details in the following-