使用matplotlib从列表中绘制函数

时间:2016-04-23 17:38:54

标签: python numpy matplotlib

我一直在尝试使用numpy和matplotlib打印几个方程式。

函数存储在文本文件中,每行一个等式。这些方程如下所示:np.exp(6.6506+(-171.637)/(x*32))

我的想法是迭代到每一行,生成情节并将其保存在某处。 我的代码:

import numpy as np
import matplotlib.pyplot as plt

source = "path/to/list.txt"

with open(source) as f:
    for line in f.readlines():
        x = np.linspace(0,200)
        y = line
        plt.plot(x,y)
        plt.savefig(str( line + ".png"))
        plt.close()

通过删除循环部分并替换y = line,我得到了我想要的结果 按y = np.exp(6.6506+(-171.637)/(x*32))

如何在txt文件中绘制所有方程式?情节很简单,2D。

1 个答案:

答案 0 :(得分:2)

使用eval,通常有关安全性的保留:

y = eval(line)

您可能需要从使用\n

的文件中读取的行中删除新行line.strip('\n')



提请注意eval安全风险:

  

eval解析一个字符串(给它的任何字符串)并尝试执行它......这就是为什么它通常被认为是一种安全风险,只有在确定没有任何恶意或有害指令时才能使用它。传递给它。所涉及的风险并非微不足道,其后果可能是灾难性的。

more about the dangers of eval - 由@Brenogil建议