做一个python程序,实现输入一个函数,在matplotlib.pyplot上显示出来它的函数图像,并且可以绘制三角函数的图像
时间: 2024-10-27 19:11:01 浏览: 20
在Python中,你可以使用`matplotlib.pyplot`库来创建函数图形。以下是一个简单的例子,演示如何让用户输入一个函数,并展示其在图表上的图像。这里我们将重点放在如何处理用户输入和绘制三角函数作为示例。
```python
import matplotlib.pyplot as plt
from sympy import symbols, lambdify
def plot_user_function():
# 获取用户输入的函数字符串
function_str = input("请输入您想要绘制的函数(例如 'x**2 + sin(x)'),支持基本数学运算:")
# 使用Sympy解析函数
x = symbols('x')
func = eval(function_str) # 注意:直接eval可能会有安全风险,仅限于信任的用户输入
# 将解析表达式转换为可以在数值上下文中计算的函数
func_lambda = lambdify(x, func)
# 创建图表
plt.figure(figsize=(8,6))
xs = range(-10, 11)
ys = [func_lambda(val) for val in xs]
# 绘制函数图像
plt.plot(xs, ys, label="用户定义的函数")
# 示例三角函数
trig_functions = ['sin(x)', 'cos(x)', 'tan(x)']
for i, trig_func in enumerate(trig_functions):
trig_lambda = lambdify(x, trig_func)
plt.plot(xs, [trig_lambda(val) for val in xs], label=f"三角函数 {i}")
plt.title("用户函数及三角函数图")
plt.xlabel('x')
plt.ylabel('f(x)')
plt.legend()
plt.show()
if __name__ == "__main__":
plot_user_function()
```
运行这个程序,首先会提示用户输入一个函数。然后,它将绘制出用户提供的函数以及三个常见的三角函数图像。请注意,对于用户输入的函数,这里使用了`eval()`函数,因此只有经过验证的安全内容才应被允许输入。
阅读全文