amchart несколько данных по JSON

Я хочу использовать AmChart и получать данные для графиков из MySQL по JSON.

это мой источник js:

AmCharts.ready(function () {
                //generateChartData();
                createStockChart();
            });
    function createStockChart() {
        var chart = new AmCharts.AmStockChart();
        chart.pathToImages = "../amcharts/images/";

        // DATASETS //////////////////////////////////////////
        $.getJSON("jsonlistdisp.php", function (locdata) {
                $.each(locdata, function (i, item) {
                      $.getJSON("jsonvaluedisp.php?id_disp="+locdata[i].id, function (data) {
                    var newDate = new Date(data.date);
                newDate.setHours(data.hour);

                    var dataSet = new AmCharts.DataSet();
                dataSet.title = locdata[i].name;
                dataSet.fieldMappings = [{
                    fromField: "value",
                    toField: "value"
                }, {
                    fromField: "volume",
                    toField: "volume"
                    }];
                    dataSet.dataProvider = data;
                dataSet.categoryField = newDate;

                // set data sets to the chart
                chart.dataSets.push(dataSet);

            });
            });
        });
// PANELS ///////////////////////////////////////////    

                // first stock panel
                var stockPanel1 = new AmCharts.StockPanel();
                stockPanel1.showCategoryAxis = false;
                stockPanel1.title = "Valor";
                stockPanel1.percentHeight = 70;

                // graph of first stock panel
                var graph1 = new AmCharts.StockGraph();
                graph1.valueField = "value";
                graph1.comparable = true;
                graph1.compareField = "value";
                graph1.compareGraphBalloonText="[[value]] kwh"; //mostrar las unidades de medida en el balloon de las comparaciones
                graph1.balloonText= "[[value]] kwh"; //mostrar las unidades de medida en el balloon
                stockPanel1.addStockGraph(graph1);

                // create stock legend                
                stockPanel1.stockLegend = new AmCharts.StockLegend();
                stockPanel1.stockLegend.valueTextRegular="[[value]] kwh"; ////mostrar las unidades de medida en el legend

                // second stock panel
                var stockPanel2 = new AmCharts.StockPanel();
                stockPanel2.title = "Volumen";
                stockPanel2.percentHeight = 30;
                var graph2 = new AmCharts.StockGraph();
                graph2.valueField = "volume";
                graph2.type = "column";
                graph2.showBalloon = false;
                graph2.fillAlphas = 1;
                stockPanel2.addStockGraph(graph2);
                stockPanel2.stockLegend = new AmCharts.StockLegend();
                stockPanel2.stockLegend.valueTextRegular="[[value]] kwh"; ////mostrar las unidades de medida en el legend
                // set panels to the chart
                chart.panels = [stockPanel1, stockPanel2];





                // OTHER SETTINGS ////////////////////////////////////
                var scrollbarSettings = new AmCharts.ChartScrollbarSettings();
                scrollbarSettings.graph = graph1;
                scrollbarSettings.updateOnReleaseOnly = true;
                scrollbarSettings.usePeriod = "10mm";
                chart.chartScrollbarSettings = scrollbarSettings;



                var cursorSettings = new AmCharts.ChartCursorSettings();
                cursorSettings.valueBalloonsEnabled = true;
                chart.chartCursorSettings = cursorSettings;


                // PERIOD SELECTOR ///////////////////////////////////
                var periodSelector = new AmCharts.PeriodSelector();
                periodSelector.periods = [{
                    period: "hh",
                    count: 24,
                    label: "ddd"
                }, {
                    period: "hh",
                    count: 48,
                    label: "dd"
                }, {
                    period: "hh",
                    count: 120,
                    label: "ddd"
                }, {
                    period: "hh",
                    count: 240,
                    label: "dia"
                }, {
                    period: "MAX",
                    label: "MAX"
                }];
                chart.periodSelector = periodSelector;

                var panelsSettings = new AmCharts.PanelsSettings();
                panelsSettings.usePrefixes = true;
                chart.panelsSettings = panelsSettings;

                // DATA SET SELECTOR
                var dataSetSelector = new AmCharts.DataSetSelector();
                dataSetSelector.position = "left";
                chart.dataSetSelector = dataSetSelector;



                chart.write('chartdiv');
            }
  }

результат json-файла "jsonlistdisp.php":

[
 {
  "id": "1",
  "name": "dispositivo 1",
  "desc": "dispositivo"
 },
 {
  "id": "2",
  "name": "dispositivo 2",
  "desc": "dispositivo"
 }
]

и результат json-файла "jsonvaluedisp.php":

[
 {
  "date": "2013,08,19",
  "hour": "15,17,51,0",
  "value": "0.393000",
  "volume": "0.393000"
 },
 {
  "date": "2013,08,19",
  "hour": "15,30,01,0",
  "value": "0.393000",
  "volume": "0.393000"
 }
]

Я не знаю, проблема в формате даты или в чем проблема, когда я тестирую этот код, я ничего не вижу.

Кто-нибудь знает, в чем проблема? Спасибо


person xandra    schedule 23.10.2013    source источник


Ответы (1)


Попробуйте установить формат даты для диаграммы:

chart.dataDateFormat = "ГГГГ, ММ, ДД";

Обратите внимание, вы должны использовать v3.X, чтобы это работало.

Если это не поможет, я мог бы помочь, если бы посмотрел, как вы строите диаграмму.

person zeroin    schedule 24.10.2013
comment
спасибо за быстрый ответ. Я пробую это, но проблема не решена. Я включаю в сообщение источник для построения диаграммы. Спасибо - person xandra; 24.10.2013
comment
Я предполагаю, что ваши данные загружаются после инициализации диаграммы. Попробуйте добавить chart.validateNow (); в конце вашего метода $ .getJSON. - person zeroin; 26.10.2013