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

标签 javascript angularjs linechart nvd3.js

我正在使用 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>

这是 View 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"}]

                      }];

阅读this blogpost了解更多详情。

关于javascript - 如何将字符串值添加到 nvd3 折线图 x 轴值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24858382/

相关文章:

javascript - 从 Angular Promise 获取数据

swift - 将 UIButtons 添加到折线图中的数据点,在 X 轴上绘制日期和时间

javascript - 如何更正 D3 凹坑类别轴的顺序?

javascript - 在Polygon的基础上获取 map 瓦片

Javascript Push() - 未定义的输出

javascript - 将 $scope 放在 Cytoscape 点击事件中

angularjs - 需要在 Protractor 测试用例中访问我的 angular.service

javascript - 使用 D3 标记动画折线图

javascript - 如何在 aspnet webforms 中使用 ajax 根据另一个下拉列表选择的值绑定(bind)下拉列表

JavaScript 范围/this