python中的随机平滑斜率
如何使用python创建随机平滑坡度(如)?在生成坐标列表时创建,x以恒定速率增加。我知道类似的问题已经被提出和回答了,但我没有发现专门针对python的问题python中的随机平滑斜率,python,math,coordinates,Python,Math,Coordinates,如何使用python创建随机平滑坡度(如)?在生成坐标列表时创建,x以恒定速率增加。我知道类似的问题已经被提出和回答了,但我没有发现专门针对python的问题 提前谢谢 在任何计算机语言中都无法获得完全平滑的任意曲线,因为该语言处理有限多个数据段,而曲线需要无限多个数据段。即使您显示的图形在水平方向上也只有1309个像素 Python中绘制看起来平滑的图形的常用方法是为x坐标创建许多值。对图形执行此操作的常用方法是 import numpy as np x = np.linspace(-2.0
提前谢谢 在任何计算机语言中都无法获得完全平滑的任意曲线,因为该语言处理有限多个数据段,而曲线需要无限多个数据段。即使您显示的图形在水平方向上也只有1309个像素 Python中绘制看起来平滑的图形的常用方法是为x坐标创建许多值。对图形执行此操作的常用方法是
import numpy as np
x = np.linspace(-2.0, 26.0, num=1000)
注意,我使用了1000个x值。然后创建相应的y值。如果需要随机曲线,请在表达式中使用一些随机参数。以下是一个例子:
y = ((x - uniform(-2, 26)) * (x - uniform(-2, 26)) * (x - uniform(-2, 26))
* (x - uniform(-2, 26)))
还有很多其他的方法可以随机定义一个函数——我选择了一个,一个为曲线选择四个随机x截距。让我知道你想要什么的更多细节,我也许能为你定义另一个
然后在图形包(如matplotlib)中打印这些值。下面是一个代码示例及其结果。此版本将y值限制在0到10之间,并定义了一个函数randomfunc
,在生成图形后,可以使用该函数计算任意特定x的y值。要查找x=1处的y值,请执行randomfunc(1,x1,x2,x3,x4,ymax,ymin)
但是,我该如何将其随机化?(-2,26)是什么意思?此外,如何更改坡度?10000对我来说太高了,我需要10作为最大y值@Rorydaulton最后一个请求,是否有方法打印出坐标列表,比如x的每个整数@RoryDaulton@TaeRugh:我编辑例程以定义一个函数,该函数可以为任何给定的x值查找y值。您还需要为图形中使用的特定函数传递计算出的参数——我给出了一个示例。在本例中,我发现使用numpy的随机例程比我在以前版本中使用的Python更简单。
import numpy as np
import matplotlib.pyplot as plt
# Key values
xmin = -2.0
xmax = 26.0
scale = 10.0
def randomfunctemp(x, x1, x2, x3, x4):
return (x-x1) * (x-x2) * (x-x3) * (x-x4)
def randomfunc(x, x1, x2, x3, x4, ymax, ymin):
return (randomfunctemp(x, x1, x2, x3, x4) - ymin) / (ymax - ymin) * scale
x = np.linspace(xmin, xmax, num=1000)
x1, x2, x3, x4 = np.random.uniform(xmin, xmax, 4)
y = randomfunctemp(x, x1, x2, x3, x4)
ymax, ymin = y.max(), y.min()
y = randomfunc(x, x1, x2, x3, x4, ymax, ymin)
plt.plot(x,y)
plt.show()