Skip to content

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

Open

Description

@dcronkite

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))?

Activity

  1. 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[/+] on Oct 1, 2022
  2. chris1610 commented on Oct 1, 2022

    @chris1610
    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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions