Re: [Matplotlib-users] Single color transparent colormap

2014-11-20 Thread Eric Firing
On 2014/11/19, 1:03 PM, Benjamin Root wrote:
 What you are seeing is the fact that the adjacent cells share the same
 coordinates, so neighboring cells overlap by one pixel. This is only
 visible when alpha != 1. This is a tricky issue to solve, but I could
 have sworn we made some progress on that front by setting snap to
 False somewhere. There have been past discussions about it, for sure...

I don't think we ever made any progress; it seems like a problem with 
the renderer itself, agg in this case, and one that differs from one 
renderer to another (e.g., if the plot is saved as pdf and then rendered 
by different libraries).  Try turning off antialiasing.

Eric


 Ben Root

 On Wed, Nov 19, 2014 at 12:57 PM, Loïc Estève loic.est...@inria.fr
 mailto:loic.est...@inria.fr wrote:

 Thanks for the suggestions, I have tried the easiest one for now,
 namely pcolormesh, see attached plot. The alpha colormap look great
 but I can't seem to figure out how to prevent the edges of the cells
 from being visible. I tried using edgecolors='none' to no avail. I
 guess retrospectively that is similar to the lines we see in the
 colormap on the right.

 The snippet I am using:

 import numpy as np

 import matplotlib.pyplot as plt
 from matplotlib.colors import LinearSegmentedColormap

 import matplotlib

 matplotlib.rcParams['figure.__facecolor'] = 'white'

 cm_dict = {'red':  ((0.0, 1.0, 1.0),
  (1.0, 1.0, 1.0)),
 'green': ((0.0, 0.0, 0.0),
   (1.0, 0.0, 0.0)),
 'blue':  ((0.0, 0.0, 0.0),
   (1.0, 0.0, 0.0)),
 'alpha': ((0.0, 0.0, 0.0),
   (1.0, 1.0, 1.0))
}

 my_cm = LinearSegmentedColormap('my___cm', cm_dict)

 vals = np.tile(np.linspace(-1, 1, 30), (20, 1))

 fig = plt.figure()
 ax = plt.pcolormesh(vals, cmap=my_cm)
 plt.colorbar()
 plt.show()

 Cheers,
 Loïc




 --
 Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
 from Actuate! Instantly Supercharge Your Business Reports and Dashboards
 with Interactivity, Sharing, Native Excel Exports, App Integration  more
 Get technology previously reserved for billion-dollar corporations, FREE
 http://pubads.g.doubleclick.net/gampad/clk?id=157005751iu=/4140/ostg.clktrk



 ___
 Matplotlib-users mailing list
 Matplotlib-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/matplotlib-users



--
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration  more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=157005751iu=/4140/ostg.clktrk
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


[Matplotlib-users] Single color transparent colormap

2014-11-19 Thread Loic Esteve
Dear all, 

I am trying to create a colormap with a single color (red in the example below) 
where the alpha varies from 0 to 1. It does look like I am getting some grayish 
color near the low alpha values (around alpha = 0.2). Is that expected somehow? 

The plot I get is here: 
https://cloud.githubusercontent.com/assets/1680079/5084457/7d2d3790-6f06-11e4-9021-5b9e77e6a9c4.png
 

I am using matplotlib 1.4.2. 

Here is a snippet which reproduces the issue. 

import numpy as np 

import matplotlib.pyplot as plt 
from matplotlib.colors import LinearSegmentedColormap 

import matplotlib 

matplotlib.rcParams['figure.facecolor'] = 'white' 

cm_dict = {'red': ((0.0, 1.0, 1.0), 
(1.0, 1.0, 1.0)), 
'green': ((0.0, 0.0, 0.0), 
(1.0, 0.0, 0.0)), 
'blue': ((0.0, 0.0, 0.0), 
(1.0, 0.0, 0.0)), 
'alpha': ((0.0, 0.0, 0.0), 
(1.0, 1.0, 1.0)) 
} 

my_cm = LinearSegmentedColormap('my_cm', cm_dict) 

vals = np.tile(np.linspace(-1, 1, 30), (20, 1)) 

fig = plt.figure() 
ax = plt.imshow(vals, cmap=my_cm) 
plt.colorbar() 
plt.show() 

Cheers, 
Loïc 

--
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration  more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=157005751iu=/4140/ostg.clktrk___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] Single color transparent colormap

2014-11-19 Thread Benjamin Root
Confirmed. I am going to wager that this might be related to some of the
work that is being done right now in master to improve alpha handling,
particularly with images. Notice that the colormap looks fine for the
colorbar because it isn't using imshow() under the hood.

First, if you could try using the development version of matplotlib, we
have updated the AGG codebase. Maybe that might make an improvement off the
bat. If not, you can follow this PR that is a work in progress that might
be relevant: https://github.com/matplotlib/matplotlib/pull/3783

I hope this helps!
Ben Root


On Wed, Nov 19, 2014 at 9:46 AM, Loic Esteve loic.est...@inria.fr wrote:

 Dear all,

 I am trying to create a colormap with a single color (red in the example
 below) where the alpha varies from 0 to 1. It does look like I am getting
 some grayish color near the low alpha values (around alpha = 0.2). Is that
 expected somehow?

 The plot I get is here:

 https://cloud.githubusercontent.com/assets/1680079/5084457/7d2d3790-6f06-11e4-9021-5b9e77e6a9c4.png

 I am using matplotlib 1.4.2.

 Here is a snippet which reproduces the issue.

 import numpy as np

 import matplotlib.pyplot as plt
 from matplotlib.colors import LinearSegmentedColormap

 import matplotlib

 matplotlib.rcParams['figure.facecolor'] = 'white'

 cm_dict = {'red':  ((0.0, 1.0, 1.0),
 (1.0, 1.0, 1.0)),
'green': ((0.0, 0.0, 0.0),
  (1.0, 0.0, 0.0)),
'blue':  ((0.0, 0.0, 0.0),
  (1.0, 0.0, 0.0)),
'alpha': ((0.0, 0.0, 0.0),
  (1.0, 1.0, 1.0))
   }

 my_cm = LinearSegmentedColormap('my_cm', cm_dict)

 vals = np.tile(np.linspace(-1, 1, 30), (20, 1))

 fig = plt.figure()
 ax = plt.imshow(vals, cmap=my_cm)
 plt.colorbar()
 plt.show()

 Cheers,
 Loïc



 --
 Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
 from Actuate! Instantly Supercharge Your Business Reports and Dashboards
 with Interactivity, Sharing, Native Excel Exports, App Integration  more
 Get technology previously reserved for billion-dollar corporations, FREE

 http://pubads.g.doubleclick.net/gampad/clk?id=157005751iu=/4140/ostg.clktrk
 ___
 Matplotlib-users mailing list
 Matplotlib-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/matplotlib-users


--
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration  more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=157005751iu=/4140/ostg.clktrk___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] Single color transparent colormap

2014-11-19 Thread Gael Varoquaux
On Wed, Nov 19, 2014 at 10:20:23AM -0500, Benjamin Root wrote:
 Notice that the colormap looks fine for the colorbar because it
 isn't using imshow() under the hood.

As a short-term workaround (I work with Loic, and I it would help me a
lot if his problem was solved with a hack), can we leverage the mechanism
used to plot the colorbar ourselves?

That doesn't preclude fixing the problem in master, of course.

Cheers,

Gaël

--
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration  more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=157005751iu=/4140/ostg.clktrk
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] Single color transparent colormap

2014-11-19 Thread Jody Klymak
Did you try pcolormesh?

Cheers,  Jody

 On Nov 19, 2014, at  7:23 AM, Gael Varoquaux gael.varoqu...@normalesup.org 
 wrote:
 
 On Wed, Nov 19, 2014 at 10:20:23AM -0500, Benjamin Root wrote:
 Notice that the colormap looks fine for the colorbar because it
 isn't using imshow() under the hood.
 
 As a short-term workaround (I work with Loic, and I it would help me a
 lot if his problem was solved with a hack), can we leverage the mechanism
 used to plot the colorbar ourselves?
 
 That doesn't preclude fixing the problem in master, of course.
 
 Cheers,
 
 Gaël
 
 --
 Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
 from Actuate! Instantly Supercharge Your Business Reports and Dashboards
 with Interactivity, Sharing, Native Excel Exports, App Integration  more
 Get technology previously reserved for billion-dollar corporations, FREE
 http://pubads.g.doubleclick.net/gampad/clk?id=157005751iu=/4140/ostg.clktrk
 ___
 Matplotlib-users mailing list
 Matplotlib-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/matplotlib-users


--
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration  more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=157005751iu=/4140/ostg.clktrk
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] Single color transparent colormap

2014-11-19 Thread Loïc Estève
Thanks for the suggestions, I have tried the easiest one for now, namely 
pcolormesh, see attached plot. The alpha colormap look great but I can't 
seem to figure out how to prevent the edges of the cells from being 
visible. I tried using edgecolors='none' to no avail. I guess 
retrospectively that is similar to the lines we see in the colormap on 
the right.


The snippet I am using:

import numpy as np

import matplotlib.pyplot as plt
from matplotlib.colors import LinearSegmentedColormap

import matplotlib

matplotlib.rcParams['figure.facecolor'] = 'white'

cm_dict = {'red':  ((0.0, 1.0, 1.0),
(1.0, 1.0, 1.0)),
   'green': ((0.0, 0.0, 0.0),
 (1.0, 0.0, 0.0)),
   'blue':  ((0.0, 0.0, 0.0),
 (1.0, 0.0, 0.0)),
   'alpha': ((0.0, 0.0, 0.0),
 (1.0, 1.0, 1.0))
  }

my_cm = LinearSegmentedColormap('my_cm', cm_dict)

vals = np.tile(np.linspace(-1, 1, 30), (20, 1))

fig = plt.figure()
ax = plt.pcolormesh(vals, cmap=my_cm)
plt.colorbar()
plt.show()

Cheers,
Loïc
--
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration  more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=157005751iu=/4140/ostg.clktrk___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] Single color transparent colormap

2014-11-19 Thread Benjamin Root
What you are seeing is the fact that the adjacent cells share the same
coordinates, so neighboring cells overlap by one pixel. This is only
visible when alpha != 1. This is a tricky issue to solve, but I could have
sworn we made some progress on that front by setting snap to False
somewhere. There have been past discussions about it, for sure...

Ben Root

On Wed, Nov 19, 2014 at 12:57 PM, Loïc Estève loic.est...@inria.fr wrote:

 Thanks for the suggestions, I have tried the easiest one for now, namely
 pcolormesh, see attached plot. The alpha colormap look great but I can't
 seem to figure out how to prevent the edges of the cells from being
 visible. I tried using edgecolors='none' to no avail. I guess
 retrospectively that is similar to the lines we see in the colormap on the
 right.

 The snippet I am using:

 import numpy as np

 import matplotlib.pyplot as plt
 from matplotlib.colors import LinearSegmentedColormap

 import matplotlib

 matplotlib.rcParams['figure.facecolor'] = 'white'

 cm_dict = {'red':  ((0.0, 1.0, 1.0),
 (1.0, 1.0, 1.0)),
'green': ((0.0, 0.0, 0.0),
  (1.0, 0.0, 0.0)),
'blue':  ((0.0, 0.0, 0.0),
  (1.0, 0.0, 0.0)),
'alpha': ((0.0, 0.0, 0.0),
  (1.0, 1.0, 1.0))
   }

 my_cm = LinearSegmentedColormap('my_cm', cm_dict)

 vals = np.tile(np.linspace(-1, 1, 30), (20, 1))

 fig = plt.figure()
 ax = plt.pcolormesh(vals, cmap=my_cm)
 plt.colorbar()
 plt.show()

 Cheers,
 Loïc

--
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration  more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=157005751iu=/4140/ostg.clktrk___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users