I would like to create a time series plot using seaborn.tsplot
like in this example from tsplot
documentation, but with the legend moved to the right, outside the figure.
Based on the lines 339-340 in seaborn's timeseries.py, it looks like seaborn.tsplot
currently doesn't allow direct control of legend placement:
if legend: ax.legend(loc=0, title=legend_name)
Is there a matplotlib workaround? I'm using seaborn 0.6-dev.
Indeed, seaborn
doesn't handle legends well so far. You can use plt.legend()
to control legend properties directly through matplotlib
, in accordance with Matplotlib Legend Guide.
Note that in Seaborn 0.10.0 tsplot
was removed, and you may replicate (with different values for the estimation if you please) the plots with lineplot
instead of tsplot
.
import matplotlib.pyplot as plt import seaborn as sns sns.set(style="darkgrid") # Load the long-form example gammas dataset gammas = sns.load_dataset("gammas") # Plot the response with standard error sns.lineplot(data=gammas, x="timepoint", y="BOLD signal", hue="ROI") # Put the legend out of the figure plt.legend(bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0.)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With