Python 简单matplotlib问题-变量不起作用
为什么这不起作用Python 简单matplotlib问题-变量不起作用,python,python-3.x,Python,Python 3.x,为什么这不起作用 import matplotlib.pyplot as plt import numpy as np f1 = input ('funcao1: ') f2 = input ('funcao2: ') x = np.linspace(-3, 3) plt.plot(x, f1) plt.plot(x, f2) plt.show() 当我将f1和f2更改为函数本身时,它会起作用。当我替换输入变量时,否。 错误: funcao1:x**2 funcao2:x+2 回溯(最近一
import matplotlib.pyplot as plt
import numpy as np
f1 = input ('funcao1: ')
f2 = input ('funcao2: ')
x = np.linspace(-3, 3)
plt.plot(x, f1)
plt.plot(x, f2)
plt.show()
当我将f1和f2更改为函数本身时,它会起作用。当我替换输入变量时,否。
错误:
funcao1:x**2
funcao2:x+2
回溯(最近一次呼叫最后一次)
文件“capitao.py”,第8行,在
plt.绘图(x,funcao1)
文件“C:\Users\Me\anaconda3\lib\site packages\matplotlib\pyplot.py”,第2840行,在plot中
返回gca().plot(
文件“C:\Users\Me\anaconda3\lib\site packages\matplotlib\axes\\u axes.py”,第1743行,在绘图中
行=[*self.\u获取行(*args,data=data,**kwargs)]
文件“C:\Users\Me\anaconda3\lib\site packages\matplotlib\axes\\u base.py”,第273行,在调用中__
从自身获得的收益。_plot_args(本,kwargs)
文件“C:\Users\Me\anaconda3\lib\site packages\matplotlib\axes\\u base.py”,第369行,在绘图参数中
线型、标记、颜色=\处理\打印\格式(tup[-1])
文件“C:\Users\Me\anaconda3\lib\site packages\matplotlib\axes\\ u base.py”,第146行,采用“进程\绘图”格式
升值误差(
ValueError:非法格式字符串“x**2”;两个标记符号
使用input()函数时,变量f1只是一个字符串。要将其作为python表达式计算,必须使用eval()命令,如下所示:
f1 = eval(f1)
因此,您的代码应该如下所示:
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-3, 3)
f1 = input ('funcao1: ')
f2 = input ('funcao2: ')
f1 = eval(f1)
f2 = eval(f2)
plt.plot(x, f1)
plt.plot(x, f2)
plt.show()
它不起作用。名称错误:名称“x”未定义我编辑了答案。确实,x必须在eval函数之前定义。
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-3, 3)
f1 = input ('funcao1: ')
f2 = input ('funcao2: ')
f1 = eval(f1)
f2 = eval(f2)
plt.plot(x, f1)
plt.plot(x, f2)
plt.show()