Столбцовый график из таблицы
Доброго всем времени суток.
Задача такая: с помощью HTML/CSS + JavaScript(jQuery) нужно сделать график в виде столбиков. График должен генерироваться с помощью JavaScript на основе данных таблицы. Следует выделить минимальное и максимальное значение на графике. Т.е. есть таблица в которой две строки данных: в одной строке 0,1,2,3...10. В другой: 3.2, 5.8,9.6,7.7, 6.2, 2.1... JavaScript или jquery должен выбрать из таблицы данные и построить столбцы в высоту со значениями из таблицы. (0,1,2,3...10) по Х и (3.2, 5.8,9.6,7.7, 6.2, 2.1) по Y Надеюсь разъяснил более-менее понятно. Заранее спасибо за помощь! |
Вы просите готовый скрипт с нуля.
Это работа, и за нее обычно платят деньги. Для таких сообщений предназначен раздел форума "Работа". Если вы все же хотите, чтобы вам помогли - приложите какие-то усилия сами и задавайте вопросы по ходу дела. |
Раед,
Ну извините, я и так сам пытаюсь, просто пока никаких мыслей голову не идет. Я не прошу готового решения, хоть варианты за что зацепиться. |
$(document).ready(function(){ line1 = [5,7, 9, 17]; line2 = [25, 12, 6, 10]; line3 = [2, 7, 15, 29]; plot2 = $.jqplot('chart', [line1, line2, line3], { legend:{show:true, location:'ne', xoffset:55}, title:'Диаграмма со столбцами', seriesDefaults:{ renderer:$.jqplot.BarRenderer, rendererOptions:{barPadding: 8, barMargin: 20} }, series:[ {label:'Жирафы'}, {label:'Слоны'}, {label:'Зебры'} ], axes:{ xaxis:{ renderer:$.jqplot.CategoryAxisRenderer, ticks:['Янв', 'Фев', 'Март', 'Апр'] }, yaxis:{min:0} } }); }); результат: http://grigorieff.ru/demo/jqplot/demo4.php мне бы что-то в этом духе, только из таблицы |
Все вроде хорошо получается, только если числа загнаны не в таблицу а в массив.
var line1 = [[1, 4.5], [2, 3.1], [3, 6], [4, 2.2], [5, 5.8], [6, 7.7], [7, 11.8], [8, 9.6], [9, 4.1], [10, 7.7],[11, 5.6], [12, 9.6]]; Может кто знает как перебрать ячейки таблицы и сформировать из них такой массив? |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html><head> <script type="text/javascript"> window.onload = function(){ var t1=document.getElementById('gt').rows[0].cells; var t2=document.getElementById('gt').rows[1].cells; var arr = []; for (var i=0;i<10;i++) { arr.push([t1[i].innerHTML,t2[i].innerHTML]); } alert(arr.join('; ')); } </script> </head><body> <table id="gt" border="3"> <tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td></tr> <tr> <td>4.5</td><td>3.1</td><td>6</td><td>2.2</td><td>5.8</td><td>7.7</td><td>11.8</td><td>9.6</td><td>4.1</td><td>5.6</td> </tr> </TABLE> </body></html> |
Раед,
Огромное спасибо за труда. Массив выводится конечно, но увы такой формат вывода не подходит. Нужно именно [value1, value2], [value3, value4]... Но все-равно, спасибо! |
wizard2014,
Так внутри он и хранится в нужном формате ( Цитата:
Соедините свой скрипт с моим и всё получится. Желаю удачи :) |
Раед,
Фух, что-то не выходит! :help: Получилось два отдельных скрипта, не могу понять как их соединить! <script type="text/javascript"> window.onload = function(){ var t1=document.getElementById('gt').rows[0].cells; var t2=document.getElementById('gt').rows[1].cells; var arr = []; for (var i=0;i<=11;i++) { arr.push([t1[i].innerHTML,t2[i].innerHTML]); } var line1 = arr.join('; '); } </script> и $(document).ready(function(){ var plot1 = $.jqplot('chart', [line1], { title: 'Столбцовый график', series:[{renderer:$.jqplot.BarRenderer}], axesDefaults: { tickRenderer: $.jqplot.CanvasAxisTickRenderer , tickOptions: { angle: 0, //Наклон символов (значение 0 - под 90 градусов) fontSize: '14px' //Размер шрифта } }, axes: { xaxis: { renderer: $.jqplot.CategoryAxisRenderer } } }); }); Но как передать в jQuery эту самую line1 переменную из выше следующего скрипта? Уже, вот-вот, почти, но никак. |
Цитата:
Так?: $(document).ready(function(){ var t1=document.getElementById('gt').rows[0].cells; var t2=document.getElementById('gt').rows[1].cells; var arr = []; for (var i=0;i<=11;i++) { arr.push([t1[i].innerHTML,t2[i].innerHTML]); } var line1 = arr; var plot1 = $.jqplot('chart', [line1], { title: 'Столбцовый график', series:[{renderer:$.jqplot.BarRenderer}], axesDefaults: { tickRenderer: $.jqplot.CanvasAxisTickRenderer , tickOptions: { angle: 0, //Наклон символов (значение 0 - под 90 градусов) fontSize: '14px' //Размер шрифта } }, axes: { xaxis: { renderer: $.jqplot.CategoryAxisRenderer } } }); }); |
Часовой пояс GMT +3, время: 05:05. |