HighCharts – poslání dat přes Json

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Klainer
Člen | 42
+
0
-

Dobrý den,
snažím se implementovat do mého projektu graf, využívám k to mu http://www.highcharts.com
Data se do grafu jakoby pošlou jelikož se podle nich nstaví osy, bohužel samotný graf se již nevykreslí:

Vyřešené to mám takhle přes ajax volám signál handleGetJsonData:

		if($this->isAjax())
		{
			$this->sendResponse(new Nette\Application\Responses\JsonResponse(
                            array(
                                '2011-8-15' => '0',
                                '2011-8-16' => '1',
                                '2011-8-17' => '2',
                                '2011-8-18' => '3',
                                '2011-8-19' => '4',
                                '2011-10-25' => '2',
                                '2012-1-15' => '1',
                                '2011-2-10' => '0.0',
                                '2011-3-5' => '8',
                            )));
		}

Výsledek je :
[[1313366400000, "0"], [1313452800000, "1"], [1313539200000, "2"], [1313625600000, "3"], [1313712000000, "4"], [1319500800000, "2"], [1326585600000, "1"], [1297296000000, "0.0"], [1299283200000, "8"]]

Tímto volám GetJsonData:

function requestData() {
       $.ajax({
           url: {link GetJsonData!},
           success: function(json) {

               var series = {
                   name: 'JSON Data',
                   data: []
                   }

               $.each(json, function(date,value) {
                   xval = date.split("-");
                   x = Date.UTC(xval[0], xval[1] - 1, xval[2]);
                   series.data.push([
                       x,
                       value
                   ]);
               });

               console.log(series.data);

               chart.addSeries(series);

           },
           cache: false
       });
       }

V series mám nyní uloženy potřebné data na vykreslení. a mají se přidat do grafu, v grafu se mi objeví jmeno serie: JSON Data, změní se ale pouze x osa.

Inicializace grafu:

chart = new Highcharts.Chart({
		chart: {
			renderTo: 'container',
			type: 'spline'
		},
		title: {
			text: 'Snow depth in the Vikjafjellet mountain, Norway'
		},
		subtitle: {
			text: 'An example of irregular time data in Highcharts JS'
		},
		xAxis: {
			type: 'datetime',
			dateTimeLabelFormats: { // don't display the dummy year
				month: '%e. %b',
				year: '%b'
			}
		},
		yAxis: {
			title: {
				text: 'Objem nádrže'
			},
			min: 0
		},
		tooltip: {
			formatter: function() {
					return '<b>'+ this.series.name +'</b><br/>'+
					Highcharts.dateFormat('%e. %b', this.x) +': '+ this.y +' m';
			}
		},

		series: [{
			name: 'Nadrz1',
			// Define the data points. All series have a dummy year
			// of 1970/71 in order to be compared on the same x axis. Note
			// that in JavaScript, months start at 0 for January, 1 for February etc.
			data: [
				[Date.UTC(1970,  9, 27), 0   ],
				[Date.UTC(1970, 10, 10), 0.6 ],
				[Date.UTC(1970, 10, 18), 0.7 ],
				[Date.UTC(1970, 11,  2), 0.8 ],
				[Date.UTC(1970, 11,  9), 0.6 ],
				[Date.UTC(1970, 11, 16), 0.6 ],
				[Date.UTC(1970, 11, 28), 0.67],
				[Date.UTC(1971,  0,  1), 0.81],

                                ]
                        }]

	});

	requestData();

Pomůže někdo ? Díky
Jinak ty ukázková data [Date.UTC(1970, 9, 27), 0 ], atd … v series nadrz1 se normálně vykreslí … Možná je to tím že mi Json vrací [1313366400000, „0“] s uvozovkami, ale to nevím no ..

**Tak vyřešeno, moje blbost: **

array( '2011-8-15' => 0, ....

A uz to jede :), tak pokud někdo bude potřebovat grafy tak se to hodí ..

Editoval Klainer (3. 7. 2012 15:06)