I am plotting a Precision/Recall Curve and want to put specific labels for each marker in the plot.
Here is the code that generates the plot:
from matplotlib import pyplot
pyplot.plot([0, 100], [94, 100], linestyle='--')
pyplot.xlabel("Recall")
pyplot.ylabel("Precision")
list_of_rec = [
99.96,99.96,99.96,99.96,99.96,99.96,99.8,98.25,96.59,93.37,83.74,63.53,48.72,25.05,10.7,4.27,0.73,0.23]
list_of_prec = [
94.12,94.12,94.12,94.12,94.12,94.12,94.42,95.14,95.92,96.57,97.33,98.26,98.72,99.0,99.0,99.17,99.75,99.19]
list_of_markers = [
0.0, 0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5.0, 5.5, 6.0, 6.5, 7.0, 7.5, 8.0, 8.5
]
# plot the precision-recall curve for the model
pyplot.plot(list_of_rec, list_of_prec, marker='*', markersize=8)
pyplot.show()
This gives me the following plot:
For each of the markers in the plot (*) I want to label them with text from the list_of_markers
. Don't seem to find an option to pass a list of text labels to the plot anywhere, any help appreciated.
You can annotate each of your markers by looping through them and putting the labels as text annotations
for x, y, text in zip(list_of_rec, list_of_prec, list_of_markers):
plt.text(x, y, text)