mar*_*tin 11 javascript d3.js nvd3.js angularjs-nvd3-directives angular-nvd3
我需要在我的累积Nvd3图表中添加多个y轴,是否有人知道我需要修改的库代码的哪一部分?
如果你自己做了这件事并且可以提供一个Jsfiddle,那就更好了.
任何建议,将不胜感激.
只有具有多Y轴功能的特定图表类型.
这不适用于累积折线图.
但它可用于多图表.还有就是Angluar NVD3主页上的例子在这里,但它显示了条形和线条的例子.
我从主页分叉了plunker示例,并将系列类型更改为所有行,以向您展示如何使用multi来获得与累积折线图相同的结果.
(我也更改了数据集以简化示例)
第一件事是为多轴添加选项:
$scope.options = {
chart: {
type: 'multiChart',
height: 450,
margin : {
top: 30,
right: 60,
bottom: 50,
left: 70
},
color: d3.scale.category10().range(),
//useInteractiveGuideline: true,
transitionDuration: 500,
xAxis: {
tickFormat: function(d){
return d3.format(',f')(d);
}
},
yAxis1: {
tickFormat: function(d){
return d3.format(',.1f')(d);
}
},
yAxis2: {
tickFormat: function(d){
return d3.format(',.1f')(d);
}
}
}
};
Run Code Online (Sandbox Code Playgroud)
定义您的数据:
$scope.data = [{key: 'series1', type: "line", yAxis: 1, values:[{x: 10, y: 20}, {x: 20, y: 35}, {x: 30, y:18}]},
{key: 'series2', type: "line", yAxis: 1,values:[{x: 10, y: 12}, {x: 20, y: 26}, {x: 30, y: 15}]},
{key: 'series3', type: "line", yAxis: 2,values:[{x: 10, y: 0.75}, {x: 20, y: 0.9}, {x: 30, y: 0.8}]},
{key: 'series4', type: "line", yAxis: 2,values:[{x: 10, y: 0.2}, {x: 20, y: 0.3}, {x: 30, y: 0.4}]}]
Run Code Online (Sandbox Code Playgroud)
请注意,每个系列都设置了type和yAxis键.
设置<div>正常:
<nvd3 options="options" data="data"></nvd3>
Run Code Online (Sandbox Code Playgroud)
就是这样!
您将获得与累积折线图相同的图表,但能够设置多个轴.
小智 2
如果您指的是向单个图表添加多个 y 轴,则NVD3 折线图和条形图中已提供该图表。部分代码片段如下所示。
chart.y1Axis
.tickFormat(d3.format(',f'));
chart.y2Axis
.tickFormat(function(d) { return '$' + d3.format(',f')(d) });
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7522 次 |
| 最近记录: |