I used a piece of code (based on a solution to another problem posed here ) to create spectral data plots with two x-axis. The first (lower) is in frequency units, the second (upper) is simply converted to units of wavelength (wavelength = 3E8 / frequency). This worked fine until I upgraded MPL to 1.4.2, after which the values ββon the upper axis will be the same as on the lower axis (see Example).
MWE (exact copy of the MPL mailing list):
from matplotlib.transforms import Transform, BlendedGenericTransform, IdentityTransform import matplotlib.pyplot as plt from mpl_toolkits.axes_grid.parasite_axes import SubplotHost import numpy as np c = 3.e2 class Freq2WavelengthTransform(Transform): input_dims = 1 output_dims = 1 is_separable = False has_inverse = True def transform(self, tr): return c/tr def inverted(self): return Wavelength2FreqTransform() class Wavelength2FreqTransform(Freq2WavelengthTransform): def inverted(self): return Freq2WavelengthTransform() aux_trans = BlendedGenericTransform(Freq2WavelengthTransform(), IdentityTransform()) fig = plt.figure(2) ax_GHz = SubplotHost(fig, 1,1,1) fig.add_subplot(ax_GHz) ax_GHz.set_xlabel("Frequency (GHz)") xvals = np.arange(199.9, 999.9, 0.1)
This gives 
Can I advise how to handle this in MPL 1.4.2?
python matplotlib
Tom brien
source share