On Tue, Jul 17, 2007 at 08:33:47AM -0500, John Hunter wrote:
> Speaking of branches, we may need to seriously consider a branch here,
> mpl1. The changes here may involve breaking a fair amount of code,
> which I don't mind doing to get it right, but I'm somewhat inclined to
> branch off here for matplotlib1.0, with the goal of using traits,
> fixing axis handling (eg multiple y-axis with arbitrary placement),
> and rewriting the transforms.
On the topic of transforms, I would like to be able to do dynamic range
compression on a decaying oscillatory signal. Think of it as a logarithmic
axis which supports negative numbers. AFAICT, the current transform
infrastructure does not allow me to add this as a third party package.
The axis would look something like:
|- 10**2
|
|- 10**1
|
|- 10**0
|
|- 10**-1
|
|- 0
|
|- -10**-1
|
|- -10**0
As well as a max and min parameter, there would have to be a cutoff
parameter. For auto axes, choose a cutoff which allows a reasonable
number of decades to be displayed (I'm guessing reasonable is seven).
The transform would be something like the following:
if (x[i] > cut) newx[i] = log10(x[i]) - log10cut;
else if (x[i] < -cut) newx[i] = log10cut - log10(-x[i]);
else newx[i] = 0.;
with inverse:
if (x[i] < 0) newx[i] = -pow(10.0, log10cut - x[i]);
else if (x[i] > 0) newx[i] = pow(10.0, x[i] - log10cut);
else x[i] = 0.
Even extending the current LOG10 support would present a challenge of
how to get the cut value into the transform.
Suggestions how I can implement this in the current architecture, or
should I wait for the new transforms code?
- Paul
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Matplotlib-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-devel