我需要使用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
我知道这是一个很小的差异,但是足以引起图中的差异。您知道导致更改的原因以及如何防止更改发生吗?
答案 0 :(得分:0)
您的JavaScript似乎使用了更多的小数来表示浮点数。您可能知道,不是每个浮点数都可以使用二进制结构表示,因此最后x个数字的精度不如前几个数字。如果这些数字对您的绘图至关重要,则可能需要尝试将结果乘以一个较大的数字(例如10 ^ 12),然后使用整数或仅使用几位小数。您以后总是可以在javascript中再次对它们进行划分,但随后可能会遇到相同的问题。
另一个选择是使用pyplot绘制数据(因为无论如何都使用django),然后在网页中使用生成的图像。您实际上不需要使用javascript生成图形。