Pim Schellart wrote:
I am currently building an interactive display using matplotlib but I
need the following two options.
1. Setting the r axis of a polar plot to logaritmic scale.
2. Setting alpha for each point individually (preferably by giving
alpha an array of the same length as the data containing a value
between zero and one).
Is this currently possible and if not which alternative approach do
You can't give alpha an array, but you can create an Nx4 RGBA array (which will let you control the color individually, too). For example:
r = np.arange(0, 3.0, 0.01)
theta = 2*np.pi*r
c = np.zeros((len(r), 4))
c[:,0:3] = (1, 0, 0) # red
c[:,3] = np.arange(0, 1.0, 1.0 / len(r))
ax.scatter(theta, r, c=c, lw=0)
The display needs to plot about a thousand points (using scatter at
the moment) roughly updating every second with older points fading
away (lower value of alpha).
Scatter is pretty heavily optimized in the *Agg backends, but not so much in the others. Make sure you are using Agg and IIRC this level of performance should be possible (depending on machine etc., of course).
Science Software Branch
Operations and Engineering Division
Space Telescope Science Institute
Operated by AURA for NASA