How to change the text color of font in legend?
call Legend.get_texts()
will get a list of Text object in the legend object:
import pylab as plpl.plot(randn(100), label="randn")l = legend()for text in l.get_texts(): text.set_color("red")
Because plt.setp
broadcasts over iterables, you can also modify the text color in one line:
# Show some cool graphslegend = plt.legend()plt.setp(legend.get_texts(), color='w')
The last line will apply the colour to all elements in the collection of texts.
You can also do it with setp():
import pylab as pltleg = plt.legend(framealpha = 0, loc = 'best')for text in leg.get_texts(): plt.setp(text, color = 'w')
this method also allows you to set the fontsize and any number of other font properties in one line (listed here: http://matplotlib.org/users/text_props.html)
full example:
import pylab as pltx = range(100)y1 = range(100,200)y2 = range(50,150)fig = plt.figure(facecolor = 'k')ax = fig.add_subplot(111, axisbg = 'k')ax.tick_params(color='w', labelcolor='w')for spine in ax.spines.values(): spine.set_edgecolor('w')ax.plot(x, y1, c = 'w', label = 'y1')ax.plot(x, y2, c = 'g', label = 'y2')leg = plt.legend(framealpha = 0, loc = 'best')for text in leg.get_texts(): plt.setp(text, color = 'w')plt.show()