Рубрики
Без рубрики

Что мы можем сделать С Помощью слайдера Matplotlib в Python

Слайдер, который мы создаем с помощью библиотеки Matplotlib, помогает нам управлять визуальными свойствами нашего графика. В следующем разделе мы

Автор оригинала: Team Python Pool.

Привет гики и добро пожаловать в сегодняшней статье мы рассмотрим слайдер Matplotlib. Наряду с этим мы также рассмотрим его синтаксис для общего лучшего понимания. Затем мы увидим применение всей теоретической части на нескольких примерах. Но прежде давайте попробуем получить общий обзор этой функции.

Слайдер может означать разные вещи. Например, слайдер, созданный с помощью JavaScript, используется для создания слайдера изображения. Слайдер, который мы создаем с помощью библиотеки Matplotlib, помогает нам управлять визуальными свойствами нашего графика. В следующем разделе мы увидим, как создать слайдер.

Создание слайдера в Matplotlib

В этом разделе мы сосредоточимся на создании слайдера. Давайте посмотрим код, который поможет нам создать нужный слайдер. Ползунок часто используется для управления визуальным свойством участка. Поэтому нам нужно создать простой сюжет.

import numpy as np
from scipy.interpolate import UnivariateSpline
import matplotlib.pyplot as plt
.linspace(0, 10, 20).sin(0.5 * x) * np.sin(x * np.random.randn(20))
(x, y,).linspace(0, 10, 100)(x_s).figure()
.subplots().plot(x, y).plot(x_s, y_s, 'y')
.figure()
plt.show()
Слайдер Matplotlib
Слайдер Matplotlib

Для целей этой статьи мы будем использовать синусоидальный график в качестве ссылки. Для изменяющегося параметра мы будем использовать сплайновую кривую. Чтобы получить этот график, мы использовали как помощь NumPy, модуль Matplotlib, так и сплайн-кривую. Нам нужен href=”https://www.scipy.org/”> модуль scipy. Теперь мы следующим шагом добавим к нему слайдер. Давайте как это делается href=”https://www.scipy.org/”> модуль scipy. Теперь мы следующим шагом добавим к нему слайдер. Давайте как это делается

import numpy as np
from scipy.interpolate import UnivariateSpline
import matplotlib.pyplot as plt
from matplotlib.widgets import Slider.linspace(0, 10, 20).sin(0.5 * x) * np.sin(x * np.random.randn(20))
(x, y,).linspace(0, 10, 100)(x_s).figure()
plt.subplots_adjust(bottom=.25).subplots().plot(x, y).plot(x_s, y_s, 'y').axes([.25,.1,.65,.03])(ax_slide,"changing.0,valinit=.6,valstep=.2)

.figure()
plt.show()
Слайдер Matplotlib
Слайдер Matplotlib

Выше мы успешно добавили ползунок в наш график. Для этого мы внесли определенные дополнения в наш кодекс. Во – первых, мы использовали функцию subplot adjust, чтобы сделать пространство ползунка свободным. Затем мы определили размеры ползунка. Далее мы определили параметры ползунка, такие как метка, минимальное и максимальное значения. Также его начальная точка и вал шаг. Но дело в том, что наш слайдер еще не подключен к графику, и любое изменение в нем не будет иметь никаких изменений на графике.

Давайте посмотрим, как их соединить

import matplotlib
matplotlib.use('Qt5Agg')
import numpy as np
from scipy.interpolate import UnivariateSpline
import matplotlib.pyplot as plt
from matplotlib.widgets import Slider

.linspace(0, 10, 20).sin(0.5 * x) * np.sin(x * np.random.randn(20))
(x, y,).linspace(0, 10, 100)(x_spline)
.figure().25).subplots().plot(x, y).plot(x_spline, y_spline, 'y')
.axes([0.25, 0.1, 0.65, 0.03])
(ax_slide, 'changing factor',
                  1, 5,.5,.5)



def update(val):
   .val
   (x, y,)
    p.set_ydata(spline(x_spline))
    fig.canvas.draw()

s_factor.on_changed(update)
plt.show()
интерактивный слайдер
интерактивный слайдер

Здесь мы можем успешно подключить ползунок к графику. Кроме того, теперь, если внести какие-либо изменения в слайдер, это вызовет изменение в сюжете. Для этого мы определили функцию, как это совершенно очевидно из кода.

Измените цвет слайдера Matplotlib

При желании вы можете изменить цвет слайдера. Для этого все, что вам нужно сделать, это добавить параметр цвета при определении параметра слайдера. Из приведенного выше кода все, что нам нужно сделать, это добавить следующую вещь

изменение цвета слайдера
изменение цвета слайдера

Посмотрите, как мы можем изменить цвет нашего слайдера аналогичным образом, если вы хотите изменить шаг, на котором слайдер увеличивается или уменьшается. Вы также можете сделать это, изменив параметр "шаг val". Вы можете увидеть код ниже

шаг ползунка matplotlib
шаг ползунка matplotlib

Как увеличить масштаб графика с помощью ползунка

С помощью ползунка в matplotlib мы также можем увеличивать и уменьшать масштаб графика. Код, с помощью которого мы можем достичь этого, приведен ниже

import matplotlib
matplotlib.use('Qt5Agg')
from numpy import pi, sin
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.widgets import Slider, Button, RadioButtons
def signal(amp, freq):
    return amp * sin(2 * pi * freq * t).figure().add_subplot(111).25,.25).arange(-10, 10.0, 0.001).plot(t, signal(5, 2),,)
ax.set_xlim([0, 1])
ax.set_ylim([-10, 10]).add_axes([0.25, 0.1, 0.65, 0.03],)(zoom_slider_ax, 'Zoom', -1, 1,)
def sliders_on_changed(val,.25):
   .get_xlim()
   .get_ylim()
   .val*scale_factor
    + scale
    - scale
    - scale*10
    y_bottom = -10 + scale*10
    ax.set_xlim([x_left, x_right])
    ax.set_ylim([y_bottom, y_top])
    fig.canvas.draw_idle()
zoom_slider.on_changed(sliders_on_changed).add_axes([0.8, 0.025, 0.1, 0.04])(reset_button_ax, 'Reset',,)
def reset_button_on_clicked(mouse_event):
    zoom_slider.reset()
reset_button.on_clicked(reset_button_on_clicked).add_axes([0.025, 0.5, 0.15, 0.15],)(color_radios_ax, ('red', 'blue', 'green'),)
def color_radios_on_clicked(label):
    line.set_color(label)
    fig.canvas.draw_idle()
color_radios.on_clicked(color_radios_on_clicked)
plt.show()
Сюжет Matplotlib
Сюжет Matplotlib

Это исходный график, который мы получаем в качестве вывода. Теперь с помощью ползунка мы меняем общее представление сюжета. На рисунке ниже показано изменение, которое происходит

Matplotlib slider zoom
Matplotlib slider zoom

Matplotlib Слайдер Не Работает Исправлена Проблема

Виджет Matplotlib требует внешней поддержки для отображения их в окне. Что еще более важно, если они используются в Pycharm или Jupiter customized python shell, они могут оставаться неинициализированными. Поскольку это программное обеспечение не поддерживает определенные графические модули, вам необходимо изменить базовый модуль, используемый для создания графического интерфейса.

Предположим, вы используете Pycharm Ide или jupyter notebook для написания своей программы. Тогда виджеты могут не быть интерактивными по своей природе. Чтобы сделать их интерактивными, все, что вам нужно сделать, это установить модуль "PYQT5" и добавить его в свой код –

import matplotlib
matplotlib.use('Qt5Agg')

Таким образом, наш виджет становится интерактивным. Qt5Agg относится к модулю PyQt5, который славится своими продвинутыми функциями графического интерфейса. Перед использованием этого модуля вам необходимо убедиться, что на вашем компьютере установлен PyQt5. Если нет, то выполните эту команду в вашем терминале – pip install PyQt5

Использование этой функции гарантирует, что ваши окна Matplotlib будут созданы с помощью модуля PyQt5.

Альтернативное решение –

import matplotlib.pyplot as plt
from matplotlib.widgets import Slider, Button, RadioButtons
import matplotlib

matplotlib.use('TkAgg')

Более того, если использование PyQt5 в качестве графического интерфейса не работает для вас, вам нужно изменить модуль на базовый Tkinter. Поскольку Tkinter предустановлен в python и не требует внешних модулей, он может работать легко.

Вывод

В этой статье мы рассмотрели слайдер Matplotlib. Мы рассмотрели пошаговую процедуру того, как мы можем выполнить это в нашей программе. Мы также посмотрели на трюк, сделав наш слайдер интерактивным. В конце концов, мы можем сделать вывод, что с помощью ползунка мы можем изменить визуальное представление нашего сюжета.

Надеюсь, эта статья смогла развеять все сомнения. Но если у вас есть какие-либо нерешенные вопросы, не стесняйтесь писать их ниже в разделе комментариев.