HighCharts – poslání dat přes Json
- Klainer
- Člen | 42
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)