Skip to content

Various examples updates. #10326

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

Merged
merged 1 commit into from
Jan 27, 2018
Merged

Various examples updates. #10326

merged 1 commit into from
Jan 27, 2018

Conversation

anntzer
Copy link
Contributor

@anntzer anntzer commented Jan 26, 2018

  • don't import out of pyplot or numpy, import as plt/np.
  • move some examples to use subplots() instead of add_subplot.
  • set random seed for some examples.
  • fix some docstrings.

PR Summary

PR Checklist

  • Has Pytest style unit tests
  • Code is PEP 8 compliant
  • New features are documented, with examples if plot related
  • Documentation is sphinx and numpydoc compliant
  • Added an entry to doc/users/next_whats_new/ if major new feature (follow instructions in README.rst there)
  • Documented in doc/api/api_changes.rst if API changed in a backward-incompatible way

@anntzer anntzer added this to the v2.2 milestone Jan 26, 2018

fig = plt.figure(1, figsize=(6, 3))
fig, (ax1, ax2) = plt.subplots(1, 2)
fig.subplots_adjust(wspace=0.5)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could be added to subplots via gridspec_kw.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not convinced it's an improvement in legibility...

import matplotlib.pyplot as plt
from numpy import nonzero
from numpy.random import rand
from matplotlib import colors as mcolors, path, pyplot as plt
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure if mixed import and import as are easy to read.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

disagree, but still split it out

"""
from matplotlib.pyplot import figure, show

from matplotlib import pyplot as plt
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

import matplotlib.pyplot as plt (also in various other locations, please search/replace)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed

# plot specifying units
ax2.plot(x, y, 'o', xunits=2.0)
ax2.set_title("xunits = 2.0")
plt.setp(ax2.get_xticklabels(), rotation=30, ha='right')
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Broadcasting explicitly to a list of tick labels feels a bit clumsy. Is there maybe a method to set this for all tick labels, e.g. tick_params or similar?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

tick_params can set labelrotation, but not horizontalalignment (and I don't think it's worth changing that, IMO setp actually does this job perfectly well...).

label.set_ha('right')
ax1.plot(x, y) # uses default units
ax1.set_title('default units')
plt.setp(ax1.get_xticklabels(), rotation=30, ha='right')
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

see above

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ditto

t = arange(0.0, 3.0, 0.01)
s = sin(2*pi*t)
t = np.arange(0.0, 3.0, 0.01)
s = np.sin(2*np.pi*t)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we have a convention, if this should include spaces around the operators? PEP8 would want them. Throughout the examples both variants are used.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See discussion at #7562 (comment) which I now agree with: I still believe spaces are in general good, but in some cases no spaces read better.
See also https://www.python.org/dev/peps/pep-0008/#other-recommendations ("use your own judgment", hehe).

Copy link
Member

@jklymak jklymak left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These changes are all fine +/- @timhoffm suggestions. Probably could make more, but overall the movement away from the pyplot interface is helpful.

- don't import out of pyplot or numpy, import as plt/np.
- move some examples to use subplots() instead of add_subplot.
- set random seed for some examples.
- fix some docstrings.
@jklymak jklymak merged commit 358e087 into matplotlib:master Jan 27, 2018
@anntzer anntzer deleted the examples branch January 27, 2018 06:04
@QuLogic QuLogic modified the milestones: needs sorting, v2.2.0 Feb 12, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants