Considere el siguiente código:¿Cómo se produce un eje a escala exponencial?
from numpy import log2
import matplotlib.pyplot as plt
xdata = [log2(x)*(10/log2(10)) for x in range(1,11)]
ydata = range(10)
plt.plot(xdata, ydata)
plt.show()
Esto produce el siguiente diagrama: Mi pregunta es, ¿cómo puedo modificar esta, por lo que la trama, con los mismos datos como entrada, aparece como una línea recta? Esto básicamente requiere escalar el eje x apropiadamente, pero no puedo entender cómo hacerlo. La razón para hacer esto es que estoy mostrando una función que cambia muy poco al principio, pero comienza a fluctuar más hacia el final del intervalo válido, por lo que quiero tener una resolución horizontal más alta hacia el final. Si alguien puede proponer una solución alternativa a mi enfoque, ¡siéntete libre de hacerlo!
En realidad, usted debería ser capaz de simular cosas sin definir una nueva escala y transformar ... 'ax.xaxis._scale._transform = ax.xaxis._scale. _transform.inverted() 'Esto no funciona por alguna razón, sin embargo ... (o, mejor dicho, funciona hasta que grafiques datos ...) Obviamente, tu ejemplo funciona, ¡aunque bastante prolijo! –
¡Gracias! Descubrí ese ejemplo yo mismo, pero tenía la esperanza de que podría haber una manera más simple. –