Требуется некоторое руководство о том, как правильно отображать данные, которые очень малы и хранятся как BigDecimal.
Если бы у кого-то был опыт использования BigDecimals в любом графическом сценарии, я считаю, что ваш вклад в то, как вы поместили их в пригодную для использования последовательность, был бы неоценим.
В настоящее время я использую lazy_high_charts , и действительно кажется, что это сработает исключительно хорошо, однако я столкнулся с проблемой, когда я не имел дело с данными по минутной шкале BigDecimal до настоящего времени.
Учитывая мои запросы, я вытащу около 1000 точек данных для нескольких различных серий данных с точностью в диапазоне от 0,100E-9 до 0,100E-1.
Как лучше всего подготовить эти ряды данных для представления на таком графике, который имеет научное применение и поэтому важна точность? Я не уверен, смогу ли я продолжить или продолжить в BigDecimal или что-то еще?
В настоящее время я запрашиваю базу данных с помощью строки, аналогичной:
series_a = dataset.order("date").select('data_set.data1').limit(1000).all.zip
Буду признателен за некоторые рекомендации по переходу от этого результата (опять-таки, к выводу массива BigDecimals) к соответствующему формату для того, что войдет в серию диаграмм.
Контекстуальный пример кода, который я использую для построения диаграммы в моем контроллере:
@h = LazyHighCharts::HighChart.new('graph') do |f|
series_a = dataset.order("date").select('data_set.data1').limit(1000).all.zip
series_b = dataset.order("date").select('data_set.data3').limit(1000).all.zip
f.series(:name => 'Data 1', :data => series_a)
f.series(:name => 'Data 2', :data => series_b)
f.chart({:defaultSeriesType => "line" })
f.yAxis [
{:title => { :text => "Left Y Label", :margin => 10} },
{:title => { :text => "Right Y Label"}, :opposite => true }
]
f.xAxis(:title => { :text => "X Label"} )
f.title(:text => "Graph Title")
f.legend(:align => 'right', :verticalAlign => 'top', :y => 75, :x => -50, :layout => 'vertical')
end
Я думаю, что я немного продвинулся в своем понимании того, что я решил преобразовать BigDecimals в строки согласно " Как получить доступ к полям по имени атрибута из результатов строки ActiveRecord? " Однако, похоже, в конечном итоге это не дает результатов и дает ошибочные результаты, так как поле функций серии :data
ожидает, я думаю, числового ввода. Я думаю, что в конечном итоге это приводит к тому, что json отправляется в верхние чарты, однако я все еще застрял на данный момент, пытаясь правильно передать эти значения.