Description
Problem
As shown by #22390 (use annotate() to draw arrows), #25905 (use annotate for subplot labeling), and #25993 (use annotate for rainbow text), annotate()/Annotation() has a really powerful API 1) to draw arrows and 2) to position itself.
To a large extent, this is useful not only for Axes-level artists but also for (Sub)Figure-level ones, so it would be nice to also have Figure.annotate() (and perhaps also plt.figannotate(), not that I really care), matching as much as possible the API of Axes.annotate. (Currently one can already manually create an Annotation and call Figure.add_artist to add it.)
I think the main (only?) things that Figure.annotate() cannot support are xycoords/textcoords="axes points"/"axes pixels"/"axes fraction"/"data", and thus the default value of xycoords should thus be "figure fraction" (matching Figure.text()) instead of "data".
Proposed solution
No response