To manually add a legend with a color box on a matplotlib figure a solution is to use patches, exemple:
import matplotlib.patches as mpatches
import matplotlib.pyplot as plt
red_patch = mpatches.Patch(color='red', label='The red data')
plt.legend(handles=[red_patch])
plt.savefig("proxy_artists.png")
plt.show()
Another example:
import matplotlib.pyplot as plt
import scipy.stats
import numpy as np
x_min = 0.0
x_max = 30.0
#----------------------------------------------------------------------------------------#
# Population B
mean = 9.0
std = 2.0
x = np.linspace(x_min, x_max, 100)
y = scipy.stats.norm.pdf(x,mean,std)
plt.plot(x,y, color='black')
plt.fill_between(x, y, color='#89bedc', alpha='1.0')
#----------------------------------------------------------------------------------------#
# Population A
mean = 15.0
std = 4.0
x = np.linspace(x_min, x_max, 100)
y = scipy.stats.norm.pdf(x,mean,std)
plt.plot(x,y, color='black')
plt.fill_between(x, y, color='#0b559f', alpha='1.0')
#----------------------------------------------------------------------------------------#
# legend
import matplotlib.patches as mpatches
pop_a = mpatches.Patch(color='#0b559f', label='Population A')
pop_b = mpatches.Patch(color='#89bedc', label='Population B')
plt.legend(handles=[pop_a,pop_b])
#----------------------------------------------------------------------------------------#
plt.grid()
plt.xlim(x_min,x_max)
plt.ylim(0,0.25)
plt.title('How to use ROC curve to test a dicrete classifier ?',fontsize=10)
plt.xlabel('x')
plt.ylabel('Probability Density Function')
plt.savefig("roc_curve_discrete_classifier_02.png")
plt.show()
References
Links | Site |
---|---|
Proxy artists | matplotlib doc |