Nvd3 discreteBarChart y axis label

Я использую следующий код, чтобы установить метку по оси Y для дискретной гистограммы в nvd3, но она не отображает метку для оси y. BTW, x-axis label отлично работает.

chart.yAxis.axisLabel('Students (in %)');

Ответ 1

Остерегайтесь того, что если значение chart.margin слишком мало слева, для ярлыка будет недостаточно места. Вы можете отрегулировать значение chart.margin или поместить метку оси y ближе к диаграмме, установив опцию axisLabelDistance:

chart.yAxis
    .axisLabel('Students (in %)')
    .axisLabelDistance(40);

Ответ 2

Следующие работы:

nv.addGraph(function() {
  var chart = nv.models.discreteBarChart()
      .x(function(d) { return d.label })
      .y(function(d) { return d.value })
      .staggerLabels(true)
      .tooltips(false)
      .showValues(true)

  chart.yAxis.axisLabel("Students (in %)")

  d3.select('#chart svg')
      .datum(data)
      .transition().duration(500)
      .call(chart);

  nv.utils.windowResize(chart.update);

  return chart;
});

У вас может быть опечатка где-то.

Ответ 3

Для дискретной гистограммы вы можете настроить параметры диаграммы, как показано ниже. Вам не нужно использовать все эти параметры для создания диаграммной модели в вашем javascript-коде. Достаточно установить только те функции, которые вы изменили, а остальные будут по умолчанию.

'use strict';

angular.module('mainApp.controllers')

    .controller('discreteBarChartCtrl', function($scope){

        $scope.options = {
            chart: {
                type: 'discreteBarChart',
                height: 450,
                margin : {
                    top: 20,
                    right: 20,
                    bottom: 50,
                    left: 55
                },
                x: function(d){return d.label;},
                y: function(d){return d.value;},
                showValues: true,
                valueFormat: function(d){
                    return d3.format(',.4f')(d);
                },
                duration: 500,
                xAxis: {
                    axisLabel: 'X Axis'
                },
                yAxis: {
                    axisLabel: 'Y Axis',
                    axisLabelDistance: -10
                }
            }
        };

        $scope.data = [
            {
                key: "Cumulative Return",
                values: [
                    {
                        "label" : "A" ,
                        "value" : -29.765957771107
                    } ,
                    {
                        "label" : "B" ,
                        "value" : 0
                    } ,
                    {
                        "label" : "C" ,
                        "value" : 32.807804682612
                    } ,
                    {
                        "label" : "D" ,
                        "value" : 196.45946739256
                    } ,
                    {
                        "label" : "E" ,
                        "value" : 0.19434030906893
                    } ,
                    {
                        "label" : "F" ,
                        "value" : -98.079782601442
                    } ,
                    {
                        "label" : "G" ,
                        "value" : -13.925743130903
                    } ,
                    {
                        "label" : "H" ,
                        "value" : -5.1387322875705
                    }
                ]
            }
        ]
    })