def METHOD_NAME(self, input_event):
    try:
        self.x_min = float(self.xmin.value)
        self.xmin.style = {'color': 'black'}
    except:
        self.xmin.style = {'color': 'red'}
    try:
        self.x_max = float(self.xmax.value)
        self.xmax.style = {'color': 'black'}
    except:
        self.xmax.style = {'color': 'red'}
    try:
        if float(self.points.value) <= 0:
            raise RuntimeError
        self.point_count = float(self.points.value)
        self.points.style = {'color': 'black'}
    except:
        self.points.style = {'color': 'red'}
    step = (self.x_max - self.x_min) / self.point_count
    color_list = ['blue', 'green', 'orange', 'yellow', 'purple', 'grey']
    CHART_DATA['data']['datasets'].clear()
    for i in range(len(self.f_list)):
        x_list = []
        y_list = []
        exception_count = 0
        x = self.x_min
        while x < self.x_max + step / 2:
            x_list.append(round(x, 1))
            y = 0
            try:
                y = float(eval(self.f_list[i].value, math.__dict__, {'x': x}))
            except:
                exception_count += 1
            y_list.append(y)
            x += step
        if exception_count < len(x_list):
            CHART_DATA['data']['labels'] = x_list
            CHART_DATA['data']['datasets'].append(
                {
                    'label': 'f' + chr(ord('₁') + i),
                    'data': y_list,
                    'borderWidth': 2,
                    'borderColor': colors[color_list[i]],
                    'backgroundColor': alpha(color_list[i], 0.2),
                }
            )
            self.f_list[i].style = {'color': colors[color_list[i]]}
        else:
            self.f_list[i].style = {'color': 'red'}
        self.chart.data = CHART_DATA