|
From: Jody K. <jk...@uv...> - 2015-04-02 16:32:51
|
Hi John,
I got this off stack exchange, apologies to the original contributor...
Cheers, Jody
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.colors import LinearSegmentedColormap
x = np.arange(100)
y = np.random.rand(100)
z = 4 * np.random.rand(100)
cmap = plt.get_cmap('rainbow_r’)
start=0.2
stop = 1.
colors = cmap(np.linspace(start, stop, cmap.N))
# Create a new colormap from those colors
color_map = LinearSegmentedColormap.from_list('Upper Half', colors)
fig = plt.figure(figsize=(12,9))
ax1 = plt.subplot(111)
sc = ax1.scatter(x, y, c=z, s=50, cmap=color_map, vmin=0, vmax=4)
position=fig.add_axes([0.37, 0.16, 0.5, 0.02])
cb = fig.colorbar(sc, cax=position, orientation='horizontal', drawedges=False)
cb.set_label('Z-Colors', fontsize=14)
# I tried this after talking with Ben Root, but it
# results in some odd behavior
# cb.ax.set_xlim(0,4)
plt.show()
> On 2 Apr 2015, at 5:47 AM, John Leeman <kd...@gm...> wrote:
>
> Hi all,
>
> I’m plotting some scatter points colored by a third variable, but want to use a limited subset of a colormap. In the example below, the color axis data ranges from 0-4, but I want to not use the red portion of the bar. Doing the first part is just accomplished by setting the vmin/vmax. But when I plot a color bar I don’t want to show the colors and values for anything below zero. Other than just white-boxing that part of the bar I’m not sure how to do it. I tried a suggestion of setting the limit properties of the bar axis attribute, but that results in the bar getting shrunk and shifted (a very weird behavior). Any ideas?
>
> Thank you,
>
> John Leeman
>
> import numpy as np
> import matplotlib.pyplot as plt
>
> x = np.arange(100)
> y = np.random.rand(100)
> z = 4 * np.random.rand(100)
>
> color_map = plt.get_cmap('rainbow_r')
>
> fig = plt.figure(figsize=(12,9))
> ax1 = plt.subplot(111)
> sc = ax1.scatter(x, y, c=z, s=50, cmap=color_map, vmin=-1, vmax=4)
>
> position=fig.add_axes([0.37, 0.16, 0.5, 0.02])
> cb = fig.colorbar(sc, cax=position, orientation='horizontal', drawedges=False)
> cb.set_label('Z-Colors’, fontsize=14)
>
> # I tried this after talking with Ben Root, but it
> # results in some odd behavior
> # cb.ax.set_xlim(0,4)
>
> plt.show()
> <Color_Bar.png>
> ------------------------------------------------------------------------------
> Dive into the World of Parallel Programming The Go Parallel Website, sponsored
> by Intel and developed in partnership with Slashdot Media, is your hub for all
> things parallel software development, from weekly thought leadership blogs to
> news, videos, case studies, tutorials and more. Take a look and join the
> conversation now. http://goparallel.sourceforge.net/_______________________________________________
> Matplotlib-users mailing list
> Mat...@li...
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
--
Jody Klymak
http://web.uvic.ca/~jklymak/
|