Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

pandas - boxplot median color settings issues

I'm running Pandas 0.16.2 and Matplotlib 1.4.3. I have this issue coloring the median of the boxplot generated by the following code:

df = pd.DataFrame(np.random.rand(10, 5), columns=['A', 'B', 'C', 'D', 'E'])

fig, ax = plt.subplots()

medianprops = dict(linestyle='-', linewidth=2, color='blue')

bp = df.boxplot(medianprops=medianprops)

plt.show()

That returns:

enter image description here

It appears that the color setting is not read. Changing only the settings of linestyle and linewidth the plot reacts correctly.

medianprops = dict(linestyle='-.', linewidth=5, color='blue')

enter image description here

Anyone can reproduce it?

like image 825
Fabio Lamanna Avatar asked Sep 10 '15 12:09

Fabio Lamanna


1 Answers

Looking at the code for DataFrame.boxplot() there is some special code to handle the colors of the different elements that supersedes the kws passed to matplotlib's boxplot. In theory, there seem to be a way to pass a color= argument containing a dictionary with keys being 'boxes', 'whiskers', 'medians', 'caps' but I can't seem to get it to work when calling boxplot() directly.

However, this seem to work:

df.plot(kind='box', color={'medians': 'blue'}, 
        medianprops={'linestyle': '--', 'linewidth': 5})

see Pandas Boxplot Examples

like image 57
Diziet Asahi Avatar answered Sep 17 '22 11:09

Diziet Asahi