【问题标题】:Why does Javascript keeps changing my data?为什么 Javascript 不断更改我的数据?
【发布时间】:2019-04-25 09:42:09
【问题描述】:

我需要使用 chart.js 绘制数据,但数据不断从 python 的原始数据变化。在这一点上,我不知道该怎么做,因为我的图表在 python 和 chart.js 之间看起来完全不同。

快速上下文:我有一个 python 脚本,它生成我想在网站上使用 chart.js 绘制的数据。为此,我使用 Django 将数据作为上下文传递给我使用 chart.js 绘制的 HTML 模板。但是,我注意到 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

我知道这是一个很小的差异,但足以引起情节的差异。你知道是什么导致了这种变化以及如何防止它发生吗?

【问题讨论】:

标签: javascript django python-3.x


【解决方案1】:

看起来您的 javascript 使用更多小数来表示浮点数。您可能知道,并非每个浮点数都可以使用二进制结构表示,因此最后 x 位数的精度不如前几位数。如果这些数字对您的绘图非常重要,您可能想尝试将结果乘以一个大数(例如 10^12)并使用整数或仅使用几个小数。您可以稍后在您的 javascript 中再次划分它们,但您最终可能会遇到同样的问题。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-14
    • 1970-01-01
    • 2018-03-26
    • 2013-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多