Skip to content
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

ticker.StrMethodFormatter("{x:0.0f}") appears to obscure rather than clean year values #1

Open
dcronkite opened this issue Oct 1, 2022 · 1 comment

Comments

@dcronkite
Copy link

On, e.g., ch3-ex2 and ch4-ex1, a string formatter is used to 'format' years on the x-axis which would otherwise appear as decimals (2015.0 -> 2015, 2017.5 -> 2018). This, however, appears to distort the actual x-axis labels, showing '2018' when at the spot which ought to be labeled '2017.5'.

You can see this from the following 2 code snippets using chapter3-example2, cell 8 (note the difference in the 2017.5 and 2018 labels which point to the same location):

fig, ax = plt.subplots()
ax.plot(avg_by_year.year, avg_by_year.comb08)
ax.xaxis.set_major_formatter(ticker.StrMethodFormatter('{x:0.0f}'))

with_decimal

fig, ax = plt.subplots()
ax.plot(avg_by_year.year, avg_by_year.comb08)
ax.xaxis.set_major_formatter(ticker.StrMethodFormatter('{x:0.1f}'))

without_decimal

I think the correct code to avoid the '20XX.5' in years might be something like ax.set_xticks(np.arange(2000, 2020, 2))?

@dcronkite dcronkite changed the title ticker.StrMethodFormatter("{x:0.0f}" appears to obscure rather than clean year values ticker.StrMethodFormatter("{x:0.0f}") appears to obscure rather than clean year values Oct 1, 2022
@chris1610
Copy link
Collaborator

Ah. Great catch! Thanks for pointing this out. I definitely didn't catch this.

You're correct the np.arange() code your using is a good alternative. I'm going to also look through the Matplotlib docs and see if something here might be a good alternative that is more "date-aware"
https://matplotlib.org/stable/api/dates_api.html

I'm going to keep this open until I figure out the best approach and how to update the course.

Thanks again!

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

No branches or pull requests

2 participants