Диаграммы AngularJS Nvd3

#angularjs-directive #nvd3.js

#angularjs-директива #nvd3.js

Вопрос:

Привет, сообщество, я поражен этим в течение нескольких последних дней .. Я попробовал мастер nvd3 в github.Затем я поиграл с LinePlusBarFocusChart.У меня есть одна проблема, в примере они использовали числовые значения .. для загрузки данных

var testdata = [ { «ключ»: «Количество», «бар»: истина, «значения»: [ [ «ЯЙЦО» , 121000.0] , [ 1138683600000 , 127000.0] ] }, { » ключ» : «Цена», «значения» : [ [ «ЯЙЦО» , 71.89] , [ 1138683600000 , 75.51] ] } ]

пока я меняю первое значение в виде строки..Моя диаграмма выглядит так,

кто-нибудь может помочь мне решить эту проблему …. Ответ будет оценен по достоинству.

С уважением, Юварадж…

Ответ №1:

Каждый элемент данных представляет собой последовательный элемент, поэтому вам нужна временная переменная. Но вы можете добавить дополнительную переменную с метками в набор данных

 $scope.data = [
    {
        "key" : "Quantity" ,
        "bar": true,
        "values" : [ 
            [ 1136005200000 , 1271000.0, 'EGG1'] , 
            [ 1138683600000 , 1271000.0, 'EGG2'] , 
            ...
        ]
    },{
        "key" : "Price" ,
        "values" : [ [ 1136005200000 , 71.89], ... ]
    }
].map(function(series) {
    series.values = series.values.map(function(d) { 
        return {x: d[0], y: d[1], label: d[2] } 
    });
    return series;
});   
  

а затем манипулируйте им с xAxis.tickFormat помощью опции диаграммы. Эта опция может быть определена как функция, подобная:

 xAxis: {
    tickFormat: function(d) {
        var dx = $scope.data[0].values[d].x;
        var label = $scope.data[0].values[d].label;
        return label ? label : d3.time.format('%x')(new Date(dx));
    }        
}
  

Смотрите демонстрацию. (Здесь используется эта директива.)

Комментарии:

1. У меня есть набор данных со строковыми значениями, а не одна строка «ЯЙЦО». var testdata = [ { «ключ»: «Количество», «бар»: истина, «значения»: [ [ ‘ЯЙЦО’ , 121000.0] , [ 1138683600000 , 127000.0] ,[ » ЯЙЦО», 71.89] ,[ «ЯЙЦО», 71.89] , [ «ЯЙЦО», 71.89] ,[ «ЯЙЦО», 71.89],[ «ЯЙЦО», 71.89],[ «ЯЙЦО», 71.89] ] }, { «ключ»: «Цена», «значения»: [ [ ‘ЯЙЦО’ , 71.89] , [ 1138683600000 , 75.51],[ » ЯЙЦО», 71.89] ,[«ЯЙЦО», 71.89],[ «ЯЙЦО», 71.89],[ «ЯЙЦО», 71.89],[ «ЯЙЦО», 71.89],[ «ЯЙЦО», 71.89] ] } ] можете ли вы показать несколько примеров..

2. сохраните свою временную переменную и добавьте другую с метками. Я обновил ответ.

3. Спасибо за ваш ответ, криспо.. У меня есть одно сомнение в коде ur, значения EGG2, EGG3 не отображаются на этикетке .. можете ли вы проверить, пожалуйста.

4. поскольку набор данных большой — просто увеличьте масштаб диаграммы.

5. О, спасибо, Криспо, работает нормально. У меня есть один запрос, мне нужно передать три параметра ах .. Я думаю, как передать «значения»: [ [ ‘EGG’, 1210000.0] , ,[ «EGG2», 71.89] ] для загрузки диаграммы. Это невозможно ах .. я должен передать дату, значение и метку ах..