-
-
Notifications
You must be signed in to change notification settings - Fork 7.9k
updating color cycle tutorial #9408
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
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,125 @@ | ||
""" | ||
=================== | ||
Styling with cycler | ||
=================== | ||
|
||
Demo of custom property-cycle settings to control colors and other style | ||
properties for multi-line plots. | ||
|
||
.. note:: | ||
|
||
More complete documentation of the ``cycler`` API can be found | ||
`here <http://matplotlib.org/cycler/>`_. | ||
|
||
This example demonstrates two different APIs: | ||
|
||
1. Setting the default rc parameter specifying the property cycle. | ||
This affects all subsequent axes (but not axes already created). | ||
2. Setting the property cycle for a single pair of axes. | ||
|
||
""" | ||
from cycler import cycler | ||
import numpy as np | ||
import matplotlib.pyplot as plt | ||
|
||
############################################################################### | ||
# First we'll generate some sample data, in this case, four offset sine | ||
# curves. | ||
x = np.linspace(0, 2 * np.pi, 50) | ||
offsets = np.linspace(0, 2 * np.pi, 4, endpoint=False) | ||
yy = np.transpose([np.sin(x + phi) for phi in offsets]) | ||
|
||
############################################################################### | ||
# Now ``yy`` has shape | ||
print(yy.shape) | ||
|
||
############################################################################### | ||
# So ``yy[:, i]`` will give you the ``i``-th offset sine curve. Let's set the | ||
# default prop_cycle using :func:`matplotlib.pyplot.rc`. We'll combine a color | ||
# cycler and a linestyle cycler by adding (``+``) two ``cycler``'s together. | ||
# See the bottom of this tutorial for more information about combining | ||
# different cyclers. | ||
default_cycler = cycler('color', ['r', 'g', 'b', 'y']) \ | ||
+ cycler('linestyle', ['-', '--', ':', '-.']) | ||
|
||
plt.rc('lines', linewidth=4) | ||
plt.rc('axes', prop_cycle=default_cycler) | ||
|
||
############################################################################### | ||
# Now we'll generate a figure with two axes, one on top of the other. On the | ||
# first axis, we'll plot with the default cycler. On the second axis, we'll | ||
# set the prop_cycler using :func:`matplotlib.axes.Axes.set_prop_cycle` | ||
# which will only set the ``prop_cycle`` for this :mod:`matplotlib.axes.Axes` | ||
# instance. We'll use a second ``cycler`` that combines a color cycler and a | ||
# linewidth cycler. | ||
custom_cycler = cycler('color', ['c', 'm', 'y', 'k']) \ | ||
+ cycler('lw', [1, 2, 3, 4]) | ||
|
||
fig, (ax0, ax1) = plt.subplots(nrows=2) | ||
ax0.plot(yy) | ||
ax0.set_title('Set default color cycle to rgby') | ||
ax1.set_prop_cycle(custom_cycler) | ||
ax1.plot(yy) | ||
ax1.set_title('Set axes color cycle to cmyk') | ||
|
||
# Add a bit more space between the two plots. | ||
fig.subplots_adjust(hspace=0.3) | ||
plt.show() | ||
|
||
############################################################################### | ||
# Setting ``prop_cycler`` in the ``matplotlibrc`` file or style files | ||
# ------------------------------------------------------------------- | ||
# | ||
# Remember, if you want to set a custom ``prop_cycler`` in your | ||
# ``.matplotlibrc`` file or a style file (``style.mplstyle``), you can set the | ||
# ``axes.prop_cycle`` property: | ||
# | ||
# ..code-block:: python | ||
# | ||
# axes.prop_cycle : cycler('color', 'bgrcmyk') | ||
# | ||
# Cycling through multiple properties | ||
# ----------------------------------- | ||
# | ||
# You can add cyclers: | ||
# | ||
# .. code-block:: python | ||
# | ||
# from cycler import cycler | ||
# cc = (cycler(color=list('rgb')) + | ||
# cycler(linestyle=['-', '--', '-.'])) | ||
# for d in cc: | ||
# print(d) | ||
# | ||
# Results in: | ||
# | ||
# .. code-block:: python | ||
# | ||
# {'color': 'r', 'linestyle': '-'} | ||
# {'color': 'g', 'linestyle': '--'} | ||
# {'color': 'b', 'linestyle': '-.'} | ||
# | ||
# | ||
# You can multiply cyclers: | ||
# | ||
# .. code-block:: python | ||
# | ||
# from cycler import cycler | ||
# cc = (cycler(color=list('rgb')) * | ||
# cycler(linestyle=['-', '--', '-.'])) | ||
# for d in cc: | ||
# print(d) | ||
# | ||
# Results in: | ||
# | ||
# .. code-block:: python | ||
# | ||
# {'color': 'r', 'linestyle': '-'} | ||
# {'color': 'r', 'linestyle': '--'} | ||
# {'color': 'r', 'linestyle': '-.'} | ||
# {'color': 'g', 'linestyle': '-'} | ||
# {'color': 'g', 'linestyle': '--'} | ||
# {'color': 'g', 'linestyle': '-.'} | ||
# {'color': 'b', 'linestyle': '-'} | ||
# {'color': 'b', 'linestyle': '--'} | ||
# {'color': 'b', 'linestyle': '-.'} |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍 to getting rid of "This example"