📜  Matplotlib - 复选框小部件

📅  最后修改于: 2022-05-13 01:55:27.985000             🧑  作者: Mango

Matplotlib - 复选框小部件

在本文中,我们将看到在 matplotlib 绘图中使用这些复选框来使我们的绘图更具交互性。复选框小部件为我们提供了使绘图更具交互性的自由。通过使用复选框,我们可以执行 on-tick 事件,在勾选复选框时会触发一些事件。

我们将使用ipywidgets库中的interact()函数来创建复选框。交互函数自动探索代码和数据交互创建用户界面(UI)的控制。它接受两个参数;一个自定义函数和一个布尔关键字参数,它使用它为复选框生成自动生成 UI 控件。

方法:

我们将绘制 (0,5) 范围内的指数曲线图。为此,我们在 0-5 范围内创建了一百个点(x 值),然后使用 NumPy.exp()函数生成其相应的指数值。如前所述,现在创建了一个名为 plot() 的自定义函数,它接受在 interact()函数传递的布尔值。根据布尔值 True 或 False,触发复选框。

当传递的参数设置为 False 时,默认情况下不单击复选框,将显示指数曲线的简单线图。当传递的参数设置为 True 时,则单击复选框,并显示指数曲线的散点图。



代码:

Python
import numpy as np
import matplotlib.pyplot as plt
from ipywidgets import interact
%matplotlib inline
  
x = np.linspace(0, 5, 100)
y = np.exp(x)
  
# Plotting the graph for exponential function
def plot(checkbox):
      
    # if checkbox is ticked then scatter
    # plot will be displayed
    if checkbox:
        plt.scatter(x, y, s = 5)
        plt.title('Scatter plot of exponential curve')
      
    # if checkbox is not ticked (by default)
    # line plot will be displayed
    else:
        plt.plot(x, y)
        plt.title('Line plot of exponential curve')
          
# calling the interact function        
interact(plot, checkbox = bool())


输出:

默认情况下未单击复选框时,布尔值设置为 False,将显示线图。

未勾选复选框:线图

当复选框被勾选时,interact()函数内的布尔值设置为 True,并且将显示散点图。

勾选复选框:散点图