Em python, podemos traçar gráficos usando muitas bibliotecas e funções. Aqui neste artigo, nosso foco principal é adicionar controles deslizantes aos nossos gráficos. Mas antes de mover para o controle deslizante, é necessário saber como traçar um gráfico básico em python usando matplotlib.pyplot. 

Percorrendo gráficos

Os gráficos de rolagem são aqueles que se atualizam conforme alteramos a escala do gráfico usando um controle deslizante. Um controle deslizante pode ser adicionado a um gráfico usando matplotlib e a biblioteca plotly. Neste tutorial, aprenderemos como gerar controles deslizantes usando a biblioteca matplotlib.pyplot.

Percorrer os gráficos pode não parecer útil ou necessário para todos os casos, mas é certamente um recurso benéfico. Existem casos em que os dados são enormes e não cabem em um gráfico dinâmico e, mesmo que se encaixem, haverá uma colisão entre os pontos do gráfico. Portanto, usar um controle deslizante reduzirá as colisões entre os pontos e fará com que pareça apresentável e limpo. Além disso, será fácil estudar.

Função Slider(): A função Slider() é uma função que está presente em matplotlib.widgets e ajuda o programador a adicionar um controle deslizante aos gráficos. A sintaxe básica de um matplotlib.widget.Slider() é

Sintaxe: matplotlib.widgets.Slider (axis, label, val_min, val_max, valinit = 0,5, valfmt = None, closed_min = True, closed_max = True, slider_min = None, slider_max = None, arrastando = True, val_step = None, orientação = 'horizontal', ** kwargs)



Exemplo 1: rolar pelos controles deslizantes.

Abordagem:

  • Módulos de importação
  • Defina o gráfico e o eixo para os subplots
  • Ajuste o tamanho do widget do controle deslizante
  • Defina alguns dados fictícios para os eixos xey
  • Trace o gráfico usando os dados fictícios
  • Defina a posição do controle deslizante e plote
  • Defina uma função de atualização que mudará a representação do gráfico quando movermos o controle deslizante
  • Defina a função de atualização para o controle deslizante usando a função on_changed() para implementar as mudanças.
  • Trace o gráfico junto com o controle deslizante.

Abaixo está a implementação:

# 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()

Saída:

rolar pelo gráfico matplotlib

Exemplo 2: percorrer vários controles deslizantes.

Abordagem:

  • Módulos de importação
  • Defina o gráfico e o eixo para os subplots
  • Ajuste o tamanho do widget do controle deslizante.
  • Defina a amplitude no eixo x e a frequência no eixo y usando alguns dados fictícios.
  • Trace o gráfico usando os dados e forneça algumas funções básicas, como mudança de cor ou mudança de tamanho de acordo com o requisito.
  • Defina a posição do controle deslizante de amplitude, controle deslizante de frequência e o gráfico.
  • Defina uma função de atualização que mudará a representação do gráfico quando movermos qualquer um dos controles deslizantes.
  • Defina a função de atualização para ambos os controles deslizantes usando a função on_changed().
  • Trace o gráfico junto com os controles deslizantes.

Abaixo está a implementação:

# 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 anf 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()

Saída:

rolar pelos gráficos

 Atenção geek! Fortaleça suas bases com o Python Programming Foundation Course e aprenda o básico.