使用matplotlib在python中的图形

时间:2014-09-14 06:10:23

标签: python numpy matplotlib

我想使用红色虚线绘制y=(x+2)(x−1)(x−2) x从-3到3。当我编写以下代码时,没有任何显示。

import numpy as np
import matplotlib.pyplot as plt


def graph(formula, x_range):

    x = np.array(x_range)
    y = eval(formula)
    plt.plot(x, y)
    plt.show()

    graph('((x-3) * (x-2))', range(-3,3))

1 个答案:

答案 0 :(得分:1)

确保graph(..)调用超出graph函数定义(IOW,正确缩进):

import numpy as np
import matplotlib.pyplot as plt

def graph(formula, x_range):
    x = np.array(x_range)
    y = eval(formula)
    plt.plot(x, y, 'r--')   # `r--` for dashed red line
    plt.show()

graph('((x-3) * (x-2))', range(-3,3))  # <----

<强>更新

使用eval不是一个好主意。相反,你可以在这种情况下传递函数。

def graph(formula, x_range):
    x = np.array(x_range)
    y = formula(x)  # <-----
    plt.plot(x, y, 'r--')
    plt.show()

graph(lambda x: (x-3) * (x-2), range(-3,3))  # <---