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-126532498,https://api.github.com/repos/pydata/xarray/issues/500,126532498,MDEyOklzc3VlQ29tbWVudDEyNjUzMjQ5OA==,1217238,2015-07-31T00:52:38Z,2015-07-31T00:52:38Z,MEMBER,"Yeah, I guess we would only want a legend if we're truly plotting categorical values (e.g., from pandas.cut)
On Thu, Jul 30, 2015 at 5:31 PM, Clark Fitzgerald
notifications@github.com wrote:
> ## The legend definitely looks better than the color bar in the seaborn PR.
>
> Reply to this email directly or view it on GitHub:
> https://github.com/xray/xray/issues/500#issuecomment-126530340
","{""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-126530340,https://api.github.com/repos/pydata/xarray/issues/500,126530340,MDEyOklzc3VlQ29tbWVudDEyNjUzMDM0MA==,5356122,2015-07-31T00:31:37Z,2015-07-31T00:31:37Z,MEMBER,"The legend definitely looks better than the color bar in the seaborn PR.
","{""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-126527616,https://api.github.com/repos/pydata/xarray/issues/500,126527616,MDEyOklzc3VlQ29tbWVudDEyNjUyNzYxNg==,1217238,2015-07-31T00:18:29Z,2015-07-31T00:18:38Z,MEMBER,"Also worth taking a look at for possible API and/or code inspiration:
https://github.com/mwaskom/seaborn/pull/629
Do we want a color bar or a legend for discrete colormaps?
","{""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-126470540,https://api.github.com/repos/pydata/xarray/issues/500,126470540,MDEyOklzc3VlQ29tbWVudDEyNjQ3MDU0MA==,1217238,2015-07-30T20:22:00Z,2015-07-30T20:22:00Z,MEMBER,"Instead of adding a separate argument `cmap_intervals`, it might make sense to call the argument `levels` -- which is the name of the existing `contour`/`contourf` argument. Then, it could work consistently between imshow/pcolormesh/contour/contourf.
","{""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-126447673,https://api.github.com/repos/pydata/xarray/issues/500,126447673,MDEyOklzc3VlQ29tbWVudDEyNjQ0NzY3Mw==,1217238,2015-07-30T19:29:27Z,2015-07-30T19:29:27Z,MEMBER,"@jhamman take a look at pandas.cut: http://pandas.pydata.org/pandas-docs/stable/generated/pandas.cut.html
","{""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-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-126012923,https://api.github.com/repos/pydata/xarray/issues/500,126012923,MDEyOklzc3VlQ29tbWVudDEyNjAxMjkyMw==,5356122,2015-07-29T16:41:40Z,2015-07-29T16:41:40Z,MEMBER,"So the user would write something like `myarray.plot_imshow(cmap_intervals=5)` and see the colors discretized into 5 bins? Sounds nice.
We could also allow a sequence for `cmap_intervals` so that `myarray.plot_imshow(cmap_intervals=[-1, 1])` uses three bins: (-inf, -1], (-1, 1], (1, 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
https://github.com/pydata/xarray/issues/500#issuecomment-125849396,https://api.github.com/repos/pydata/xarray/issues/500,125849396,MDEyOklzc3VlQ29tbWVudDEyNTg0OTM5Ng==,1217238,2015-07-29T05:41:03Z,2015-07-29T05:41:03Z,MEMBER,"This is also something I often find useful, so +1 from me. `contourf` does something similar, but it also involves plotting contour lines.
","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,97861940