color attribute of medianprops is not correctly understand in a boxplot · Issue #30346 · pandas-dev/pandas (original) (raw)

Code Sample, a copy-pastable example if possible

df = pd.DataFrame({k: np.random.random(100) for k in "ABC"})

wrong output

df.boxplot(medianprops=dict(color="C1", lw=2))

right output

plt.boxplot(df.transpose(), medianprops=dict(color="C1", lw=2))

Problem description

The problem comes from the boxplot function in a dataframe. This function is linked to the matplotlib function. I got an issue when I try to change the color of the medians using the medianprops argument of the function (which is a matplotlib argument). If I use the same instruction directly with the boxplot function in matplotlib I got the right behavior. But, I can change the linewidth or linestyle for example.

Here I put a screenshot of what I obtain if I use the boxplot method from pandas or directly from matplotlib. You can see that using the matplotlib function, the color of the median line is "correct" (the one I asked) while you cannot change the color of the line from the pandas function.

Capture d’écran 2019-12-19 à 11 04 32

Output of pd.show_versions()

INSTALLED VERSIONS ------------------ commit : None python : 3.7.4.final.0 python-bits : 64 OS : Darwin OS-release : 19.0.0 machine : x86_64 processor : i386 byteorder : little LC_ALL : None LANG : fr_FR.UTF-8 LOCALE : fr_FR.UTF-8

pandas : 0.25.1
numpy : 1.17.2
pytz : 2019.3
dateutil : 2.8.0
pip : 19.2.3
setuptools : 41.4.0
Cython : 0.29.13
pytest : 5.2.1
hypothesis : None
sphinx : 2.2.0
blosc : None
feather : None
xlsxwriter : 1.2.1
lxml.etree : 4.4.1
html5lib : 1.0.1
pymysql : None
psycopg2 : None
jinja2 : 2.10.3
IPython : 7.8.0
pandas_datareader: None
bs4 : 4.8.0
bottleneck : 1.2.1
fastparquet : None
gcsfs : None
lxml.etree : 4.4.1
matplotlib : 3.1.1
numexpr : 2.7.0
odfpy : None
openpyxl : 3.0.0
pandas_gbq : None
pyarrow : None
pytables : None
s3fs : None
scipy : 1.3.1
sqlalchemy : 1.3.9
tables : 3.5.2
xarray : None
xlrd : 1.2.0
xlwt : 1.3.0
xlsxwriter : 1.2.1