How to I change line color after calling matplotlib plot?

Issue

The following code, take from thetechrepo tutorial, will plot some data with different colors.

import matplotlib.pyplot as plt
plt.figure()

#create data
x_series = [0,1,2,3,4,5]
y_series_1 = [x**2 for x in x_series]
y_series_2 = [x**3 for x in x_series]

plt.plot(x_series, y_series_1, 'r-')
plt.plot(x_series, y_series_2, 'c--')
plt.show()

However what if I wanted to change the colors after I’ve called plot? For example how would I change the color of series_1 to green after I had called plt.plot(x_series, y_series_1, 'r-')?

Solution

you can use set_color on the Line2D object created by plt.plot. For example:

l1, = plt.plot(x_series, y_series_1, 'r-')
l2, = plt.plot(x_series, y_series_2, 'c--')

# Some time later...
l1.set_color('b')
l2.set_color('g')

Answered By – tmdavison

This Answer collected from stackoverflow, is licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0

Leave a Reply

(*) Required, Your email will not be published