The scale consists of two Transform classes, each of which needs to provide a transform_non_affine
method. One class needs to transform from data to display coordinates, which would be log(a+1)
, the other is the inverse and needs to transform from display to data coordinates, which would in this case be exp(a)-1
.
Those methods need to handle numpy arrays, so they should use the respective numpy functions instead of those from the math package.
class CustomTransform(mtransforms.Transform):
....
def transform_non_affine(self, a):
return np.log(1+a)
class InvertedCustomTransform(mtransforms.Transform):
....
def transform_non_affine(self, a):
return np.exp(a)-1