How to change the text color of font in legend? How to change the text color of font in legend? python python

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()