Groovy 如何生成拉伸图形的X值?
我试图以某种方式规范每月数据 我的意思是,我需要取每天的值,检查每个月的数据和另一个月的数据 唯一的问题是,有些月份比其他月份长。所以我想出了一个方法,我想这样做,但我有点困惑,到底怎么做 基本上,我正在浏览这个网站:试图将每一组坐标转换成一个具有31个X和Y值的图形,我想使用余弦插值器,但我仍在试图弄清楚如何使用它 现在,X值有一个函数。我可以传入类似于1..28的内容,并将其变形为31个值…足够简单的代码,类似这样的内容对我很有用:Groovy 如何生成拉伸图形的X值?,groovy,graph,interpolation,Groovy,Graph,Interpolation,我试图以某种方式规范每月数据 我的意思是,我需要取每天的值,检查每个月的数据和另一个月的数据 唯一的问题是,有些月份比其他月份长。所以我想出了一个方法,我想这样做,但我有点困惑,到底怎么做 基本上,我正在浏览这个网站:试图将每一组坐标转换成一个具有31个X和Y值的图形,我想使用余弦插值器,但我仍在试图弄清楚如何使用它 现在,X值有一个函数。我可以传入类似于1..28的内容,并将其变形为31个值…足够简单的代码,类似这样的内容对我很有用: def total = (1..30) def days
def total = (1..30)
def days = 28
def resize = {x, y->
result = []
x.each{ result << (it * (y/x.size())}
return result
}
resize(total,days)
它返回一个包含31个Y值的列表,范围从0到28
我的问题是:如何将对应的Y值列表转换为这些值?我很难理解这个概念,需要一些帮助
我的第一个想法是简单地通过这个函数运行Y值,但它返回的值都低于原始输入值
我正在寻找一些可以保留某些点上的值的东西,但只需将图形水平拉伸即可
例如,当x值为图形长度的1/3时,该值需要与原始图形长度的1/3时的值相同
有人能帮我吗?这把我难住了
提前谢谢 不确定问题出在哪里,所以我编了一些数据 我认为你的算法是正确的,你只需要规范化x轴 我想出了这个代码和一些情节来证明我相信答案是什么 定义一些x和y值:
def x = 1..30
def y = [1..15,15..1].flatten()
然后,以以下形式生成xy值列表:[[x,y],[x,y]
如果我们绘制此列表,我们会得到:
然后定义一个与您的函数基本相同的规格化函数,但它不涉及y值
def normalize( xylist, days ) {
xylist.collect { x, y -> [ x * ( days / xylist.size() ), y ] }
}
然后我们可以将我们的名单正常化为28天
def normalxy = normalize( xy, 28 )
现在,如果我们画出这些点,我们得到
正如你所看到的,两个图都有相同的形状,它们只是不同的宽度
我没有抓住要点吗?不确定问题出在哪里,所以我编造了一些数据 我认为你的算法是正确的,你只需要规范化x轴 我想出了这个代码和一些情节来证明我相信答案是什么 定义一些x和y值:
def x = 1..30
def y = [1..15,15..1].flatten()
然后,以以下形式生成xy值列表:[[x,y],[x,y]
如果我们绘制此列表,我们会得到:
然后定义一个与您的函数基本相同的规格化函数,但它不涉及y值
def normalize( xylist, days ) {
xylist.collect { x, y -> [ x * ( days / xylist.size() ), y ] }
}
然后我们可以将我们的名单正常化为28天
def normalxy = normalize( xy, 28 )
现在,如果我们画出这些点,我们得到
正如你所看到的,两个图都有相同的形状,它们只是不同的宽度
我错过要点了吗?你的x,y数据是如何存储的?你只在这里显示x数据,我想作为一个例子…x数据是我目前能够处理的所有数据。我的y数据存储在一个与总计长度相等的列表中。我可以通过执行[总计,y值]来引用每个坐标对.转置如果这使得这个问题变得更容易,那么你的x,y数据是如何存储的?你只在这里显示x数据,我想作为一个例子…x数据是我目前能够处理的所有数据。我的y数据存储在一个与总和长度相等的列表中。我可以通过执行[total,yValues]来引用每个坐标对。如果这使问题更容易解决,请转置。这非常有帮助,非常感谢!您做到了。这非常有帮助,非常感谢!