Python: desplácese por las parcelas

En python, podemos trazar gráficos usando muchas bibliotecas y funciones. Aquí, en este artículo, nuestro enfoque principal es agregar controles deslizantes a nuestros gráficos. Pero antes de avanzar hacia el control deslizante, es necesario saber cómo trazar un gráfico básico en python usando matplotlib.pyplot. 

Desplazarse por las parcelas

Los gráficos de desplazamiento son los gráficos que se actualizan a medida que cambiamos la escala del gráfico usando un control deslizante. Se puede agregar un control deslizante a una gráfica usando matplotlib y la biblioteca plotly. En este tutorial, aprenderemos a generar controles deslizantes utilizando la biblioteca matplotlib.pyplot.

Desplazarse por las tramas puede no parecer útil o necesario para todos y cada uno de los casos, pero sin duda es una característica beneficiosa. Hay casos en los que los datos son enormes y no pueden caber en un gráfico dinámico e incluso si cabe, habrá una colisión entre los puntos del gráfico. Por lo tanto, el uso de un control deslizante reducirá las colisiones entre los puntos y hará que se vea presentable y limpio. Además, será fácil de estudiar.

Función Slider(): La función Slider() es una función que está presente en matplotlib.widgets y ayuda al programador a agregar un control deslizante en los gráficos. La sintaxis básica de matplotlib.widget.Slider() es

Sintaxis: matplotlib.widgets.Slider(eje, etiqueta, val_min, val_max, valinit=0.5, valfmt=Ninguno, closed_min=True, closed_max=True, slider_min=Ninguno, slider_max=Ninguno, arrastrar=Verdadero, val_step=Ninguno, orientación= ‘horizontal’, **kwargs)

Ejemplo 1: Desplácese por los controles deslizantes.

Acercarse:

  • Importar módulos
  • Establezca la trama y el eje en las subtramas
  • Ajustar el tamaño del widget deslizante
  • Establezca algunos datos ficticios en los ejes x e y
  • Trace el gráfico utilizando los datos ficticios
  • Establecer la posición del control deslizante y trazar
  • Definir una función de actualización que cambiará la representación del gráfico cuando movamos el control deslizante
  • Establezca la función de actualización en el control deslizante usando la función on_changed() para implementar los cambios.
  • Trace el gráfico junto con el control deslizante.

A continuación se muestra la implementación:

Python3

# Import libraries using import keyword
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.widgets import Slider
 
# Setting Plot and Axis variables as subplots()
# function returns tuple(fig, ax)
Plot, Axis = plt.subplots()
 
# Adjust the bottom size according to the
# requirement of the user
plt.subplots_adjust(bottom=0.25)
 
# Set the x and y axis to some dummy data
t = np.arange(0.0, 100.0, 0.1)
s = np.sin(2*np.pi*t)
 
# plot the x and y using plot function
l = plt.plot(t, s)
 
# Choose the Slider color
slider_color = 'White'
 
# Set the axis and slider position in the plot
axis_position = plt.axes([0.2, 0.1, 0.65, 0.03],
                         facecolor = slider_color)
slider_position = Slider(axis_position,
                         'Pos', 0.1, 90.0)
 
# update() function to change the graph when the
# slider is in use
def update(val):
    pos = slider_position.val
    Axis.axis([pos, pos+10, -1, 1])
    Plot.canvas.draw_idle()
 
# update function called using on_changed() function
slider_position.on_changed(update)
 
# Display the plot
plt.show()

Producción: 

scroll through plot matplotlib

Ejemplo 2: Desplácese por varios controles deslizantes.

Acercarse:

  • Importar módulos
  • Establezca la trama y el eje en las subtramas
  • Ajuste el tamaño del widget deslizante.
  • Establezca la amplitud en el eje x y la frecuencia en el eje y utilizando algunos datos ficticios.
  • Trace el gráfico usando los datos y proporcione algunas funciones básicas, como cambio de color o cambio de tamaño según el requisito.
  • Establezca la posición del control deslizante de amplitud, el control deslizante de frecuencia y la gráfica.
  • Defina una función de actualización que cambiará la representación del gráfico cuando movamos cualquiera de los controles deslizantes.
  • Establezca la función de actualización en ambos controles deslizantes utilizando la función on_changed().
  • Trace el gráfico junto con los controles deslizantes.

A continuación se muestra la implementación:

Python3

# Importing Libraries using import function
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.widgets import Slider
 
# Setting Plot and Axis variables as subplots()
# function returns tuple(fig, ax)
fig, ax = plt.subplots()
 
# Adjust the bottom size according to the
# requirement of the user
plt.subplots_adjust(bottom = 0.25)
 
# Set the x and y axis to some dummy data
t = np.arange(0.0, 1.0, 0.001)
# Initial values of amplitude and frequency
# are denoted by a0 and f0
a0 = 6
f0 = 3
s = a0*np.sin(2*np.pi*f0*t)
 
# plot the x and y using plot function
Plot, = plt.plot(t, s, lw = 3, color = 'green')
plt.axis([0, 1, -10, 10])
 
# Choose the Slider color
axcolor = "White"
 
# Set the frequency and amplitude axis
frequency_axis = plt.axes([0.25, 0.1, 0.65, 0.03],
                          facecolor = axcolor)
amplitude_axis = plt.axes([0.25, 0.15, 0.65, 0.03],
                          facecolor = axcolor)
 
# Set the slider for frequency and amplitude
frequency_slider = Slider(frequency_axis, 'Freq',
                          0.1, 30.0, valinit = f0)
amplitude_slider = Slider(amplitude_axis, 'Amp',
                          0.1, 10.0, valinit = a0)
 
# update() function to change the graph when the
# slider is in use
def update(val):
    amp = amplitude_slider.val
    freq = frequency_slider.val
    Plot.set_ydata(amp*np.sin(2*np.pi*freq*t))
     
# update function called using on_changed() function
# for both frequency and amplitude
frequency_slider.on_changed(update)
amplitude_slider.on_changed(update)
 
# Display the plot
plt.show()

Producción: 

scroll thourgh plots

Publicación traducida automáticamente

Artículo escrito por zawaresumedha y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *