gpt4 book ai didi

python - 绘制指数函数python

转载 作者:太空宇宙 更新时间:2023-11-04 10:11:19 25 4
gpt4 key购买 nike

我在尝试绘制指数函数时得到一个线性图:

import math
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)

graph('100*(np.power(0.8, x))', (0,100))

我做错了什么? output_image

最佳答案

你真的不应该使用 EVAL。但是,撇开这个问题不谈,问题是您要传递一个包含两个值的元组作为 x_range 参数的参数。这是创建一个 x,其值为:array([ 0, 100]),如果您创建相应的 y,那么您当然只有两个点你会得到一条线。您想使用 np.arange 而不是 np.array。但是,如果您将一个元组传递给您的 graph 函数,您将需要在将它传递给 np.arange 时解压该元组。 所以这应该有效:

def graph(formula, x_range):
x = np.arange(*x_range)
y = eval(formula)
plt.plot(x, y)

不过说真的,为什么不传递一个函数而不是 eval

def graph(func, x_range):
x = np.arange(*x_range)
y = func(x)
plt.plot(x, y)

graph(lambda x: 100*(np.power(0.8, x)), (0,100))

结果:

enter image description here

关于python - 绘制指数函数python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38089954/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com