Issue
I have a series of 20 plots (not subplots) to be made in a single figure. I want the legend to be outside of the box. At the same time, I do not want to change the axes, as the size of the figure gets reduced.
- I want to keep the legend box outside the plot area (I want the legend to be outside at the right side of the plot area).
- Is there a way that I reduce the font size of the text inside the legend box, so that the size of the legend box will be small?
Solution
You can make the legend text smaller by specifying
set_size
ofFontProperties
.Resources:
- Legend guide
matplotlib.legend
matplotlib.pyplot.legend
matplotlib.font_manager
set_size(self, size)
- Valid font size are xx-small, x-small, small, medium, large, x-large, xx-large, larger, smaller, and None.
- Real Python: Python Plotting With Matplotlib (Guide)
Code
import matplotlib.pyplot as plt from matplotlib.font_manager import FontProperties fontP = FontProperties() fontP.set_size('xx-small') p1, = plt.plot([1, 2, 3], label='Line 1') p2, = plt.plot([3, 2, 1], label='Line 2') plt.legend(handles=[p1, p2], title='title', bbox_to_anchor=(1.05, 1), loc='upper left', prop=fontP)
fontsize='xx-small'
also works, without importingFontProperties
.plt.legend(handles=[p1, p2], title='title', bbox_to_anchor=(1.05, 1), loc='upper left', fontsize='xx-small')
Answered By - Navi
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.