Почему Javascript продолжает изменять мои данные? - PullRequest
0 голосов
/ 25 апреля 2019

Мне нужно построить данные с помощью 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 голосов
/ 25 апреля 2019

Похоже, ваш javascript использует больше десятичных знаков для представления числа с плавающей точкой.Как вы, возможно, знаете, не каждое число с плавающей запятой может быть представлено в виде двоичной структуры, поэтому последние x разрядов цифры менее точны, чем первые разряды.Если эти цифры имеют большое значение для вашего графика, вы можете попытаться умножить свой результат на большое число (что-то вроде 10 ^ 12) и работать с целыми числами или только с несколькими десятичными знаками.Вы всегда можете снова разделить их в своем javascript позже, но тогда у вас могут возникнуть те же проблемы.

Другой вариант - использовать pyplot для печати ваших данных (так как вы все равно используете django) и использовать полученный результатизображение на вашей веб-странице.На самом деле вам не нужно генерировать график с помощью JavaScript.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...