Essayer de tracer un spectre, à savoir, la vitesse par rapport à l'intensité, à faible axe x = vitesse, sur l'axe double supérieure = fréquencepython/matplotlib - axe doubles parasites échelle
La relation entre eux (formule doppler) est
f = (1-v/c)*f_0
où f est la fréquence résultante, la vitesse v, c la vitesse de la lumière, et f_0 la fréquence à v = 0, c. le v_lsr.
J'ai essayé de le résoudre en regardant http://matplotlib.sourceforge.net/examples/axes_grid/parasite_simple2.html, où il est résolu par
pm_to_kms = 1./206265.*2300*3.085e18/3.15e7/1.e5
aux_trans = matplotlib.transforms.Affine2D().scale(pm_to_kms, 1.)
ax_pm = ax_kms.twin(aux_trans)
ax_pm.set_viewlim_mode("transform")
mon problème est, comment puis-je remplacer les pm_to_kms avec ma fonction de la fréquence?
Quelqu'un sait-il comment résoudre ce problème?
Cela s'est avéré fonctionner correctement, par hasard, parce que l'équation de conversion entre la fréquence et la longueur d'onde (νλ = c) est symétrique par rapport à l'échange de fréquence et de longueur d'onde. Cependant, pour les transformations générales, cela donnera des résultats incorrects. Vous devez remplacer 'Freq2WavelengthTransform()' par 'Wavelength2FreqTransform()' dans la ligne: ' – u55