es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Dibujando una línea de números logarítmicos.

Disculpa, soy bastante nuevo en Python en general.

¿Tiene matplotlib una función para trazar solo un eje, una imagen unidimensional si se quiere? Necesito una línea de números logarítmicos que vaya aproximadamente de 8 a 25 con marcas, como las que tenían las antiguas calculadoras con deslizador, si recuerdas.

Sería genial si la línea también pudiera ser curva, aunque no es necesario.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Sí, matplotlib tiene una función para trazar solo un eje utilizando la clase Axes. Puede crear una imagen unidimensional o una línea de números configurando el eje y para que tenga solo una marca y sin etiqueta, y ajustando los límites y las marcas en consecuencia.

    Para crear una línea de números logarítmica que abarque de 8 a 25, puede utilizar la función semilogx para trazar el eje x en una escala logarítmica. Luego, puede establecer los límites del eje x en 8 y 25 utilizando el método set_xlim de la clase Axes. Para agregar marcas, puede utilizar el método set_xticks para establecer las ubicaciones de las marcas y el método set_xticklabels para establecer las etiquetas.

    Aquí hay un ejemplo de fragmento de código que crea una línea de números logarítmica con marcas que van de 8 a 25:

    import matplotlib.pyplot as plt
    import numpy as np
    
    fig, ax = plt.subplots()
    
    # establecer el eje y para que solo tenga una marca y sin etiqueta
    ax.yaxis.set_ticks([1])
    ax.yaxis.set_ticklabels([''])
    
    # trazar el eje x en escala logarítmica
    x = np.logspace(np.log10(8), np.log10(25), num=100, endpoint=True)
    ax.semilogx(x, np.zeros_like(x))
    
    # establecer los límites y marcas del eje x
    ax.set_xlim(8, 25)
    ax.set_xticks([8, 10, 12, 15, 20, 25])
    ax.set_xticklabels(['8', '10', '12', '15', '20', '25'])
    
    # opcionalmente, agregar una línea curva al eje
    # y = np.sin(x)
    # ax.plot(x, y)
    
    plt.show()
    

    El código anterior crea una imagen unidimensional con una línea de números logarítmicos que va de 8 a 25, con marcas en 8, 10, 12, 15, 20 y 25. Si quita el comentario de las últimas dos líneas, puede agregar una línea curva al eje.

Comments are closed.