为什么Javascript会不断更改我的数据?

时间:2019-04-25 09:42:10

标签: javascript django python-3.x

我需要使用chart.js绘制数据,但是数据与python的原始数据保持不变。在这一点上,我不知道该怎么办,因为在python和chart.js之间,我的图表看起来并不相似。

快速上下文:我有一个python脚本,该脚本正在生成要在站点上使用chart.js绘制的数据。为此,我使用Django将数据作为上下文传递到HTML模板,并在其中使用chart.js对其进行绘制。但是,我注意到python和javascript显示的图之间存在显着差异。我快速浏览了数据本身,发现它已更改。

所以我像这样传递数据:

var X = {{ X }}
var F = {{ F }}
console.log(F)
var F_ridge = {{ F_ridge }}
var F_lasso = {{ F_lasso }}
var F_elastic = {{ F_elastic }}

这是我的python数组的第一项的输出:

>>> 1.00024861720107

这是我的javascript数组的第一项的输出:

1.0002486171243539

我知道这是一个很小的差异,但是足以引起图中的差异。您知道导致更改的原因以及如何防止更改发生吗?

1 个答案:

答案 0 :(得分:0)

您的JavaScript似乎使用了更多的小数来表示浮点数。您可能知道,不是每个浮点数都可以使用二进制结构表示,因此最后x个数字的精度不如前几个数字。如果这些数字对您的绘图至关重要,则可能需要尝试将结果乘以一个较大的数字(例如10 ^ 12),然后使用整数或仅使用几位小数。您以后总是可以在javascript中再次对它们进行划分,但随后可能会遇到相同的问题。

另一个选择是使用pyplot绘制数据(因为无论如何都使用django),然后在网页中使用生成的图像。您实际上不需要使用javascript生成图形。