html_url,issue_url,id,node_id,user,created_at,updated_at,author_association,body,reactions,performed_via_github_app,issue
https://github.com/pydata/xarray/issues/500#issuecomment-126445362,https://api.github.com/repos/pydata/xarray/issues/500,126445362,MDEyOklzc3VlQ29tbWVudDEyNjQ0NTM2Mg==,2443309,2015-07-30T19:24:33Z,2015-07-30T19:24:33Z,MEMBER,"I have this mostly working on my branch now. A few questions before I issue a PR.
@clarkfitzg - do you happen to have any example code that creates intervals from a list? I also think it would be better to only use ticks defined by the user, so your case would need to be: `myarray.plot_imshow(cmap_intervals=[-np.inf, -1, 1, np.inf])`.
","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,97861940
https://github.com/pydata/xarray/issues/500#issuecomment-125974756,https://api.github.com/repos/pydata/xarray/issues/500,125974756,MDEyOklzc3VlQ29tbWVudDEyNTk3NDc1Ng==,2443309,2015-07-29T14:45:51Z,2015-07-29T14:45:51Z,MEMBER,"Exactly.
I've used something like this to generate the discrete colormap:
``` python
def cmap_discretize(cmap, n_colors):
""""""Return a discrete colormap from the continuous colormap cmap.
Parameters
----------
cmap : str or colormap object
Colormap to discretize.
n_colors : int
Number of discrete colors to divide `cmap` into.
Returns
----------
discrete_cmap : LinearSegmentedColormap
Discretized colormap.
""""""
from matplotlib.colors import LinearSegmentedColormap
import matplotlib.pyplot as plt
if type(cmap) == basestring:
cmap = plt.get_cmap(cmap)
colors_i = np.concatenate((np.linspace(0, 1., n_colors), (0., 0., 0., 0.)))
colors_rgba = cmap(colors_i)
indices = np.linspace(0, 1., n_colors + 1)
cdict = {}
for ki, key in enumerate(('red', 'green', 'blue')):
cdict[key] = [(indices[i], colors_rgba[i - 1, ki], colors_rgba[i, ki])
for i in range(n_colors + 1)]
# Return colormap object.
return LinearSegmentedColormap(cmap.name + ""_%d"" % n_colors, cdict, 1024)
```
Typically, I've manually constructed the colorbar by hand with the discrete colormap:
``` python
cmap = cmap_discretize(cmap, n_colors=10)
cnorm = mpl.colors.Normalize(vmin=vmin, vmax=vmax)
cticks = np.linspace(vmin, vmax, num=cn + 1)
cb = mpl.colorbar.ColorbarBase(cax, cmap=cmap, norm=cnorm,
orientation='vertical',
extend=cbar_extend,
ticks=cticks)
```
I'm sure this later part can be improved. Possibly by using [`matplotlib.ticker.MaxNLocator`](http://matplotlib.org/api/ticker_api.html#matplotlib.ticker.MaxNLocator) to find/set the ticks and intervals.
","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,97861940