Я боролся с моим большим проектом с течением времени, но благодаря вашей помощи здесь, в stackoverflow, мне удалось сделать 90% работы очень быстро. Спасибо за это, вы УДИВИТЕЛЬНЫ!Строка в Linechart со значениями, взятыми из текстового поля
Теперь у меня есть моя последняя проблема, а именно, построение одной строки, взятой из значений текстовой области. Вот мой код:
$(function() {
var chart;
var params = getParams(document.location.search);
var title= "Graphical representation";
var subtitle= "Options";
var yaxis= "Increasing in %";
var xvalues = [];
if(params.hasOwnProperty("xvalues"))
{
if(params.xvalues != "")
{
xvalues = CSVToArrayStr(params.xvalues, ',');
}
}
else
{
params.xvalues= [ '2007', '2008', '2009', '2010'];
xvalues = CSVToArrayStr(params.xvalues, ',');
}
// Drawing the first sample
var series = Array();
var sample = {};
sample.name = 'Sample1';
sample.data = [1.6, 3.9, 3.3, 4.0];
series.push(sample);
//Calculating the 2nd sample using math formula
function calc(data) {
ret = [];
for(var i = 0; i < data.length; i++) {
data[i] = parseFloat(data[i]);
ret[i] = (3.5 + data[i] + 0.5 * (data[i] - 3)); //parse the string to float
ret[i] = Math.round(ret[i] * 100)/100; // rounding to 2 decimals
}
return ret;
}
//Drawing the second sample according to the math formula
var stapka = {};
stapka.name = 'Sample2';
stapka.data = calc(sample.data); // - calculated data
series.push(stapka);
//Taking value from the textarea
$.valHooks.textarea = {
get: function(elem) {
return elem.value.replace(/\r?\n/g, "\r\n");
}
};
//Transfering values from the textarea to array
var sample3 = {};
sample3.data = $('textarea').val();
sample3.data = sample3.data.split(",");
if(params.hasOwnProperty("values_serie1")) {
if(params.values_serie1 != "")
{
series = getSeries(params);
// The following code is PROBLEMATIC
var result = {};
result.name = 'Calculated values';
result.data = calc(sample3.data); //here seems to be the problem
series.push(result);
}
}
$(document).ready(function() {
chart = new Highcharts.Chart({
chart: {
renderTo: 'container',
type: 'line',
},
title: {
text: title,
x: -20 //center
},
xAxis: {
categories: xvalues[0]
},
yAxis: {
title: {
text: yaxis
},
},
tooltip: {
formatter: function() {
return '<b>'+ this.series.name +'<\/b><br/>'+
'Year ' + this.x +': Rate '+ this.y + '%';
}
},
legend: {
layout: 'vertical',
align: 'right'
},
series: series
});
});
});
Я знаю, что это длинный код, но, пожалуйста, посмотри на коде, где это проблематичное. Вот что этот код нужно сделать:
- Участок первой линии согласно представленным данным выборочных
- участок второй линии в соответствии с представленной математической формулой
- Пользователь вводит значения в первой строке
- диаграмма рисует первую линию
- диаграмма рисует аВТОМАТИЧЕСКИ вторую линию, в соответствии с представленной формулой (что моя проблема)
Я не могу понять, где моя ошибка, все работает ... Образцы 2 успешно отрисовываются, введенные значения (для 1-й строки) также нарисованы также, но когда мне нужно рассчитать их для второго линии, они не хотят появляться на графике:/
Вот весь код с HTML http://jsfiddle.net/Avramoski/LsTet/2/
А вот образ того, как я хочу выглядеть ... http://imagizer.imageshack.us/v2/800x600q90/17/tbjm.png
Пожалуйста, помогите мне, это очень важно для меня. Спасибо, миллион!
вы должны пометить [тег: javascript] и [tag: jquery] в своем вопросе. не только [tag: highcharts] –
Где определена функция 'getParams()'? Сообщается об ошибке «Uncaught ReferenceError: getParams не определен». –
Я действительно не знаю, сэр, я просто скопировал код с другого сайта (plotvar.com) и изменил его ... Вы считаете, что эта функция может быть проблема? Но он работает, когда напр. Я надел строку PROBLEMATIC: 'result.data = calc (sample.data)'. Любая идея, как я могу это исправить? – user3057788