Quantcast
Channel: Forum Pasja Informatyki - Najnowsze pytania bez odpowiedzi
Viewing all articles
Browse latest Browse all 21942

Parsowanie danych JSON w JS na potrzeby wykresów Highcharts

$
0
0

Witam. Próbuję zmierzyć się z wykresami Highcharts tworzonymi z plików JSON. Mam problem z "przekodowaniem" danych JSON na format akceptowany przez wykresy. Chciałbym utworzyć wykres kolumnowy, który na osi x zawierałby kategorie (2010, 2011, 2012, 2014), a w każdej kategorii 3 serie danych (soki, dżemy, desery), których wartość prezentowana jest na osi y. Bezpośrednie wpisanie danych do serii w opcjach wykresu generuje go poprawnie. Oto kod:

<!DOCTYPE html>

<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="utf-8" />
    <title>Update Series Data</title>
    <script type="text/javascript" src="js/jquery-1.9.1.js"></script>
    <script type="text/javascript" src="js/highcharts.js"></script>
    <script type="text/javascript">
        $(function () {
           
		    var json = [{
			
					//name: 'Soki', data:[70, 75, 65, 90, 85]},
					//{name: 'Dżemy', data:[80, 45, 90, 85, 90]},
					//{name: 'Desery', data:[80, 80, 90, 101, 90],
			
			}];
			
			var processed_json = new Array();
			$.map(json, function(obj, i) {
				processed_json.push([obj.name, parseFloat(obj.data)]);
			});


			$('#container').highcharts({
				chart: {
					type: 'column'
				},
				xAxis: {
					//type: "category"
					categories:['2010','2011','2012','2013','2014']
					
				},
				series: [{
							//data: processed_json
							name: 'Soki', data:[70, 75, 65, 90, 85]},
							{name: 'Dżemy', data:[80, 45, 90, 85, 90]},
							{name: 'Desery', data:[80, 80, 90, 101, 90],
							
				}]
			});
		});
    </script>
</head>
<body>
    <div id="container" style="height: 300px"></div>
</body>
</html>

Po wpisaniu tych danych do zmiennej json wykres nie generuje się już poprawnie. Na osi x jest rok 2010, 2011, 2012, a do każdego roku przypisane są po kolei soki, dżemy, desery. Coś jest nie tak z parsowaniem danych. Nie mogę znaleźć przyczyny i bardzo proszę o pomoc. Kod wygląda tak:

<!DOCTYPE html>

<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="utf-8" />
    <title>Update Series Data</title>
    <script type="text/javascript" src="js/jquery-1.9.1.js"></script>
    <script type="text/javascript" src="js/highcharts.js"></script>
    <script type="text/javascript">
        $(function () {
           
		    var json = [{
			
					name: 'Soki', data:[70, 75, 65, 90, 85]},
					{name: 'Dżemy', data:[80, 45, 90, 85, 90]},
					{name: 'Desery', data:[80, 80, 90, 101, 90],
			
			}];
			
			var processed_json = new Array();
			$.map(json, function(obj, i) {
				processed_json.push([obj.name, parseFloat(obj.data)]);
			});


			$('#container').highcharts({
				chart: {
					type: 'column'
				},
				xAxis: {
					//type: "category"
					categories:['2010','2011','2012','2013','2014']
					
				},
				series: [{
							data: processed_json
				}]
			});
		});
    </script>
</head>
<body>
    <div id="container" style="height: 300px"></div>
</body>
</html>

Pozdrawiam

avrfun


Viewing all articles
Browse latest Browse all 21942