Skip to content

boxplot fontsize argument only works on x axis (and not on y axis) #15108

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
cbrnr opened this issue Jan 11, 2017 · 2 comments · Fixed by #15161
Closed

boxplot fontsize argument only works on x axis (and not on y axis) #15108

cbrnr opened this issue Jan 11, 2017 · 2 comments · Fixed by #15161
Labels
Milestone

Comments

@cbrnr
Copy link
Contributor

cbrnr commented Jan 11, 2017

Code Sample

import pandas as pd
df = pd.DataFrame({"a": [0, 0, 0, 1, 1, 1], "b": [1, 2, 3, 4, 5, 6]})
df.boxplot("b", by="a", fontsize=20)

Problem description

The fontsize is only applied to the x axis and not to the y axis tick labels (see figure).
boxplot

Expected Output

IMO this argument should change the font size of both axes tick labels. Side note: I've tried to use the new plot API, but I couldn't get the output to match the one shown above using df.plot.box (I couldn't figure out how to set the variable to plot in the first place - probably this only works on Series and not on DataFrames).

Output of pd.show_versions()

INSTALLED VERSIONS
------------------
commit: None
python: 3.5.2.final.0
python-bits: 64
OS: Darwin
OS-release: 15.6.0
machine: x86_64
processor: i386
byteorder: little
LC_ALL: en_US.UTF-8
LANG: en_US.UTF-8

pandas: 0.18.1
nose: 1.3.7
pip: 8.1.2
setuptools: 27.2.0
Cython: 0.24.1
numpy: 1.11.1
scipy: 0.18.1
statsmodels: 0.6.1
xarray: None
IPython: 5.1.0
sphinx: 1.4.6
patsy: 0.4.1
dateutil: 2.5.3
pytz: 2016.6.1
blosc: None
bottleneck: 1.1.0
tables: 3.2.3.1
numexpr: 2.6.1
matplotlib: 1.5.3
openpyxl: 2.3.2
xlrd: 1.0.0
xlwt: 1.1.2
xlsxwriter: 0.9.3
lxml: 3.6.4
bs4: 4.5.1
html5lib: None
httplib2: None
apiclient: None
sqlalchemy: 1.0.13
pymysql: None
psycopg2: None
jinja2: 2.8
boto: 2.42.0
pandas_datareader: None
@TomAugspurger
Copy link
Contributor

Thanks for the report. I think you're right that fontsize should apply to all the ticklabels.
Interested in submitting a fix? The problem is roughly around here. I don't think the fontsize should be set there. We should follow up with something like

if kwds.get('fontsize') is not None:
    ax.tick_params(axis='both', labelsize=fontsize)

Not great that pandas is using fontsize, when it should be called labelsize, but oh well.

And as you noticed, the .plot.box() output isn't the same as .boxplot yet (backwards compatibility things).

@TomAugspurger TomAugspurger added the Visualization plotting label Jan 11, 2017
@TomAugspurger TomAugspurger added this to the 0.20.0 milestone Jan 11, 2017
@cbrnr
Copy link
Contributor Author

cbrnr commented Jan 11, 2017

Thanks @TomAugspurger! Alright, I'll try to submit a PR soon. We should think about creating another issue to rename fontsize to labelsize. And thanks for confirming that plot.box is not there yet.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants