Added support for adding legends outside plot in bokeh #801
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
As the title says, this allows placing legends outside the axis itself with options that mirror those also present in matplotlib. Positioning is still a bit fiddly and doesn't work perfectly for all plots but the behavior is pretty good overall. Here are some simple examples:
Additionally I also added the legend_columns plot options. In matplotlib this option is an integer to control the number of columns in a legend, bokeh only supports an orientation, which is equivalent to setting the number of columns higher than the number of entries in the legend. For consistency between the backends I'd still argue that naming them the same thing and treating any non-zero
legend_columns
value as a horizontal legend layout makes sense:Overall this is an improvement, it's just a bit annoying that bokeh treats legends, axes and anything else that's placed outside the main plot as part of the plot area, which means it won't preserve aspects and squish plots as you see above, but I'm hoping that's something they'll address soon.