当前位置:网站首页>matplotlib. Widgets are easy to use

matplotlib. Widgets are easy to use

2022-07-06 07:59:00 The story has turned several pages

matplotlib Official document website :https://matplotlib.org/
My idea is to learn from cases rather than looking at them one by one , Learning in cases can quickly master , And can keep learning enthusiasm , Let's start .

1. Introduce

This module is matplotlib Medium GUI modular , Can be adjusted by bottom To change the displayed results in real time

2. structure

Don't talk much , Directly on the official documents
 Insert picture description here

3. Case study 1

The experimental environment is python3.6
Mission : Realize a small program that can change the value and image in real time
1. First , We import the required libraries

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.widgets import Slider

2. Define the main function :

if __name__ == '__main__':
    fig = plt.figure() # Create an image object 
    ax1 = fig.add_subplot(111) # take ax1 Set to place in image , There is only one sub picture in the image  
    plt.subplots_adjust(bottom=0.3)# Set the distance between the image and the bottom in the last display box 40% It's about , So as to drag the display of the bar later .
    s1 = plt.axes([0.25, 0.1, 0.6, 0.05], facecolor='yellow') # Set up slider1 The location of 
    slider1 = Slider(s1, 'gamma',valmin=0.0, valmax=100.0, valinit=10.0 ,valstep=1.0)
    slider1.on_changed(update)# This code is crucial , For real-time updates 
    slider1.reset()#Reset the slider to the initial value.
    slider1.set_val(10.0)#Set slider value to val.
    plt.show()

3. then , We add update function
To achieve real-time updates, we must first establish a update Function to get the value updated in real time update Function can only have one argument , namely val,val yes validation Abbreviation , Means variable .

def update(val):
    gamma = slider1.val

    x = np.linspace(1,100,100)
    y = np.sin(x*np.log(gamma))

    plt.plot(x,y)

    ax1.clear()
    ax1.plot(x,y)

The complete code is as follows :

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.widgets import Slider

def update(val):
    gamma = slider1.val

    x = np.linspace(1,100,100)
    y = np.sin(x*np.log(gamma))# Set a beautiful function casually 

    plt.plot(x,y)

    ax1.clear()
    ax1.plot(x,y)

if __name__ == '__main__':

    fig = plt.figure()
    ax1 = fig.add_subplot(111)

    plt.subplots_adjust(bottom=0.3)
    s1 = plt.axes([0.25, 0.1, 0.6, 0.05], facecolor='yellow') # Set up slider1 The location of 
    slider1 = Slider(s1, 'gamma',valmin=0.0, valmax=100.0, valinit=10.0 ,valstep=1.0)# Set the properties of the slider 
    slider1.on_changed(update)
    slider1.reset()#Reset the slider to the initial value.
    slider1.set_val(10.0)#Set slider value to val.
    plt.show()

After running, it first appears like this
 Insert picture description here
Try to jump the sliding shaft below , Something amazing happened
 Insert picture description here


To be continued 2022.2.12

原网站

版权声明
本文为[The story has turned several pages]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/02/202202131848392549.html