我一直在尝试使用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。
答案 0 :(得分:2)
使用eval
,通常有关安全性的保留:
y = eval(line)
您可能需要从使用\n
line.strip('\n')
提请注意eval
安全风险:
eval解析一个字符串(给它的任何字符串)并尝试执行它......这就是为什么它通常被认为是一种安全风险,只有在确定没有任何恶意或有害指令时才能使用它。传递给它。所涉及的风险并非微不足道,其后果可能是灾难性的。
more about the dangers of eval - 由@Brenogil建议