如何将字符串值添加到nvd3折线图x轴值

How to add String values to nvd3 line chart x axis values?

本文关键字:nvd3 折线图 轴值 添加 字符串      更新时间:2023-09-26

我使用nvd3在我的angular js应用程序中创建一个条形图。这里是脚本部分

<script>
        var app = angular.module("nvd3TestApp", ['nvd3ChartDirectives']);
        function ExampleCtrl2($scope){
            $scope.exampleData2 = [
        {
            "key": "Series 1",
             "values": [ 
             ["2004",5],["2005",10],["2006",3],["2007",9],["2008",10],["2009",5]]
        }
    ];
    $scope.xFunction = function(){
    return function(d){
        return d[0];
    };
}
$scope.yFunction = function(){
    return function(d){
        return d[1];
    };
}
        }
    </script>

这里是视图div

<div ng-controller="ExampleCtrl2">
    <nvd3-line-chart
        data="exampleData2"
        id="xExample"
        width="550"
        height="300"
        showXAxis="true"
        showYAxis="true"
        x="xFunction()"
        y="yFunction()"
        tooltips="true">
            <svg></svg>
    </nvd3-line-chart>
</div>

我如何使用字符串像"aaa" "bbb"…作为x轴值。如果我用一个非数字字符串替换"2004",它会给出一个错误的说法错误:属性transform="translate(NaN,0)"的值无效

您可以使用图表xAxis格式函数如下

chart.xAxis
.axisLabel('Date')
.tickFormat(function(d) {
 var label = scope.totalLoanAmountData[0].values[d].label;
 return label;
});

,然后使用标签属性的数据如下。

scope.totalLoanAmountData=[{
                        "key": "name of line one",
                        "values":[
                {x:1,y:2, label:"label1"},
                {x:1,y:2, label:"label2"},
                {x:1,y:2, label:"label3"},
                {x:1,y:2, label:"label4"},
                {x:1,y:5, label:"label5"},
                {x:1,y:2, label:"label6"},
                {x:1,y:7, label:"label7"},
                {x:1,y:2, label:"label8"},
                {x:1,y:8, label:"label9"}]
                           },
                      {"key": "name of line two",
                        "values": [
                {x:1,y:8, label:"label1"},
                {x:1,y:2, label:"label2"},
                {x:1,y:2, label:"label3"},
                {x:1,y:6, label:"label4"},
                {x:1,y:5, label:"label5"},
                {x:1,y:2, label:"label6"},
                {x:1,y:8, label:"label7"},
                {x:1,y:2, label:"label8"},
                {x:1,y:2, label:"label9"}]
                      }];