Hi Eric,

thanks for answering. I updated the attached figure.
The idea is, we want to show the tree cover difference, but to make
the negative and positive values very contrastive, we would like to
assign the values falling in small range of change (in the figure, it's -1
to 1)
as blank (or gray), in order to make the remaining data constrasting
different.


The most correct way might be to design a new colormap with white color
exactly in the middle, however this is very tedious, especially if I want
to try
different colormaps. so the alternative approach would be to set the values
falling in (-1,1) as being masked, so they will be the same as the axes
background color as you mentioned (in our case it's white). My question is,
how can I put this background color (which shows maksed data) in the
colorbar,
by avoiding design a new colormap?


Then I notice in the colormap methos there is one called "set_bad", I guess
this
is for this purpose, as in the case of "set_over" and "set_under", which
will
influence the colors in the colorbar when you later call the colorbar
method.
But is it not like this?

I invented an example like below:

import numpy as np
import matplotlib as mat
import matplotlib.pyplot as plt

data = np.random.random(10000).reshape(100,100) - 0.5
data_masked = np.ma.masked_inside(data,-0.05,0.05)
cmap = mat.cm.jet
cmap.set_bad('0.5')
fig,ax = plt.subplots(1,1)
lev = [-0.5,-0.4,-0.3,-0.2,-0.1,-0.05,0,0.05,0.1,0.2,0.3,0.4,0.5]
cas = ax.contourf(data_masked,levels=lev,cmap=cmap)
plt.colorbar(cas,ticks=lev)

In this example, how can I make the colors between -0.05 to 0.05 as white,
if I don't want to bother write a new colormap.

Thanks a lot for your time, I hope this case could be useful for others as I
am sure it's very widely used in geographic related sciences.


Cheers,

Chao



On Sat, Mar 1, 2014 at 9:16 PM, Eric Firing [via matplotlib] <
ml-node+s1069221n42950...@n5.nabble.com> wrote:

> On 2014/03/01 9:57 AM, Chao YUE wrote:
>
> > Dear all,
> >
> > In many cases in geoscience mapping we want to show the some missing
> values
> > as some special color in the colorbar. like attached one.
> >
> > I know there is one method in matplotlib colormap called "set_bad",
> official
> > docs says:
> >
> > Set color to be used for masked values.
> >
> > But I don't know how to make this work when I call the colorbar method.
>
> It is not a matter of calling the colorbar method, but of setting up the
> colormap used on the color-mapped plot for which the colorbar is made.
>
> The one wrinkle to this is that if you are using contourf, the masked
> regions are not filled at all, so they take on the color of the
> background.  To give them the color you assigned to the colormap with
> set_bad, you need to assign that same color to the background, e.g.
>
> ax.set_axis_bgcolor("#bdb76b")
>
> On re-reading your message, however, I think you are asking something
> else, but it is not clear to me from your example exactly what you are
> trying to do.
>
> The colorbar is strictly for a range or sequence of colors, which can
> include triangle regions for the "over" and "under" values; there is no
> place on the colorbar for a "bad" or "missing" value.  Where would you
> put one?  I don't see any such region on the example colorbar you
> attached.
>
> Eric
>
>
>
> > Is there anyone who have the some successful experience?
> >
> > Thanks a lot in advance!
> >
> > Chao
> > --
> >
> ***********************************************************************************
>
> > Chao YUE
> > Laboratoire des Sciences du Climat et de l'Environnement (LSCE-IPSL)
> > UMR 1572 CEA-CNRS-UVSQ
> > Batiment 712 - Pe 119
> > 91191 GIF Sur YVETTE Cedex
> > Tel: (33) 01 69 08 29 02; Fax:01.69.08.77.16
> >
> ************************************************************************************
>
> >
> >
> >
> ------------------------------------------------------------------------------
>
> > Flow-based real-time traffic analytics software. Cisco certified tool.
> > Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer
> > Customize your own dashboards, set traffic alerts and generate reports.
> > Network behavioral analysis & security monitoring. All-in-one tool.
> >
> http://pubads.g.doubleclick.net/gampad/clk?id=126839071&iu=/4140/ostg.clktrk
> >
> >
> >
> > _______________________________________________
> > Matplotlib-users mailing list
> > [hidden email] <http://user/SendEmail.jtp?type=node&node=42950&i=0>
> > https://lists.sourceforge.net/lists/listinfo/matplotlib-users
> >
>
>
> ------------------------------------------------------------------------------
>
> Flow-based real-time traffic analytics software. Cisco certified tool.
> Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer
> Customize your own dashboards, set traffic alerts and generate reports.
> Network behavioral analysis & security monitoring. All-in-one tool.
>
> http://pubads.g.doubleclick.net/gampad/clk?id=126839071&iu=/4140/ostg.clktrk
> _______________________________________________
> Matplotlib-users mailing list
> [hidden email] <http://user/SendEmail.jtp?type=node&node=42950&i=1>
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>
>
> ------------------------------
>  If you reply to this email, your message will be added to the discussion
> below:
>
> http://matplotlib.1069221.n5.nabble.com/How-can-I-put-a-white-area-in-the-middle-of-colorbar-showing-the-masked-data-tp42948p42950.html
>  To start a new topic under matplotlib - users, email
> ml-node+s1069221n...@n5.nabble.com
> To unsubscribe from matplotlib, click 
> here<http://matplotlib.1069221.n5.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=2&code=Y2hhb3l1ZWpveUBnbWFpbC5jb218MnwxMzg1NzAzMzQx>
> .
> NAML<http://matplotlib.1069221.n5.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml>
>



-- 
***********************************************************************************
Chao YUE
Laboratoire des Sciences du Climat et de l'Environnement (LSCE-IPSL)
UMR 1572 CEA-CNRS-UVSQ
Batiment 712 - Pe 119
91191 GIF Sur YVETTE Cedex
Tel: (33) 01 69 08 29 02; Fax:01.69.08.77.16
************************************************************************************


colorbar_eg.png (74K) 
<http://matplotlib.1069221.n5.nabble.com/attachment/42951/0/colorbar_eg.png>




--
View this message in context: 
http://matplotlib.1069221.n5.nabble.com/How-can-I-put-a-white-area-in-the-middle-of-colorbar-showing-the-masked-data-tp42948p42951.html
Sent from the matplotlib - users mailing list archive at Nabble.com.
------------------------------------------------------------------------------
Flow-based real-time traffic analytics software. Cisco certified tool.
Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer
Customize your own dashboards, set traffic alerts and generate reports.
Network behavioral analysis & security monitoring. All-in-one tool.
http://pubads.g.doubleclick.net/gampad/clk?id=126839071&iu=/4140/ostg.clktrk
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to