Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Set color for xticklabels individually in matplotlib

How can I give the labels "a", "b", "c" individual colors (e.g. "a" in green, "b" in blue, "c" in red) in the example below?

import numpy as np
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
p = plt.boxplot(np.random.normal(size=(10,3)))
ax.set_xticklabels(list("abc"))
plt.show()

Example of boxplot without individually colored labels.

like image 286
Fred S Avatar asked Feb 21 '14 13:02

Fred S


1 Answers

The code:

import numpy as np
import matplotlib.pyplot as plt
    fig, ax = plt.subplots()
    p = plt.boxplot(np.random.normal(size=(10,3)))
    ax.set_xticklabels(list("abc"))

[t.set_color(i) for (i,t) in
 zip(['red','green','blue'],ax.xaxis.get_ticklabels())]

plt.show()

Gives me:

enter image description here

like image 79
William Denman Avatar answered Oct 21 '22 20:10

William Denman