
And if the text overlaps with the plot, you can make it smaller by using legend.fontsize, which will then make the legend smaller. Note that because loc=2, the legend is in the upper-left corner of the plot.
Matplotlib annotate subplot how to#
More information can be found at this website but I've also included an example showing how to place a legend: ax.scatter(xa,ya, marker='o', s=20, c="lightgreen", alpha=0.9)Īx.scatter(xb,yb, marker='o', s=20, c="dodgerblue", alpha=0.9)Īx.scatter(xc,yc marker='o', s=20, c="firebrick", alpha=1.0)Īx.scatter(xd,xd,xd, marker='o', s=20, c="goldenrod", alpha=0.9) You can specify the placement of the legend box by using the loc keyterm. One solution would be to use the plt.legend function, even if you don't want an actual legend. Seaborn figure-level plot tips = sns.load_dataset('tips') Sns.lineplot(data=flights, x="year", y="passengers", ax=ax)Īx.text(1950, 500, 'flights with CI', size=15, color='purple') Seaborn axes-level plot import seaborn as sns

P = plt.Rectangle((left, bottom), width, height, fill=False)Īx.text(left, 0.5 * (bottom + top), 'right center',Īx.text(left, 0.5 * (bottom + top), 'left center',Īx.text(0.5 * (left + right), 0.5 * (bottom + top), 'middle',Īx.text(right, 0.5 * (bottom + top), 'centered',Īx.text(left, top, 'rotated\nwith newlines',
Matplotlib annotate subplot free#
In this way you will always have this free space for the text.ĮDIT: here you have an example: from matplotlib import pyplot as plt The easier method is to set y_axis (ymax in ylim((ymin,ymax))) to a value a bit higher than the max y-coordinate of your points. To prevent the text to interfere with any point of your scatter is more difficult afaik.

The example below places text in the center The default transform specifies that text is in data coords,Īlternatively, you can specify text in axis coords (0,0 is lower-leftĪnd 1,1 is upper-right). : add a grid of named Axes and return a dictionary of axes.

Note that plt.subplots () adds a single Axes to a Figure. The pyplot version returns both the Figure object and an array of Axes. Text coordinates can be given relative to the axis, so the position of your text will be independent of the size of the plot: pyplot.subplots: add a grid of Axes as in the example above.
