Greetings.
I have a series of lines that I would like to plot on the same axis,
but I would like to set the color of each such that the range of
colors used progresses through a given color map (e.g. the default Jet
map.) For example, if I have 7 lines, the first would use the first
most color from the Jet color map (blue.) The next line would use the
color that is 1/7 the way up the map, e.g. green or so. This would
continue until the last line was red.
How would I go about doing this (that is, loading a color map and
pulling a specific color from it that could be handed to plot as an
rgba tuple)?
Thanks!
-dw
Hi Daniel,
You can just pass values to a colormap. If those values are evenly spaced between 0 and 1, you’ll get the result you desire. Example:
···
On Thu, Feb 16, 2012 at 4:14 PM, Daniel Welling <dantwelling@…287…> wrote:
Greetings.
I have a series of lines that I would like to plot on the same axis,
but I would like to set the color of each such that the range of
colors used progresses through a given color map (e.g. the default Jet
map.) For example, if I have 7 lines, the first would use the first
most color from the Jet color map (blue.) The next line would use the
color that is 1/7 the way up the map, e.g. green or so. This would
continue until the last line was red.
How would I go about doing this (that is, loading a color map and
pulling a specific color from it that could be handed to plot as an
rgba tuple)?
Thanks!
-dw
#~~~~~
import numpy as np
import matplotlib.pyplot as plt
n_lines = 10
x = np.linspace(0, 10)
phase_shift = np.linspace(0, np.pi, n_lines)
color_idx = np.linspace(0, 1, n_lines)
for i, shift in zip(color_idx, phase_shift):
plt.plot(x, np.sin(x - shift), color=plt.cm.jet(i))
plt.show()
#~~~~~
Coincidentally, this past weekend, I started wrapping up random code like this into a utility package. See cycle_cmap
in this package: https://github.com/tonysyu/mpltools/blob/master/mpltools/color.py. The package is still in the early stages, and function names could easily change, so use with caution.
Best,
-Tony