我正在使用NVD3构建带有外部HTML控件的lineChart,允许用户向图表添加其他系列。 (理想情况下,整个图表将按照新系列可能需要的新比例进行动画处理,但这不是绝对必要的。)
我正在使用如下代码创建图表:
var gChart;
function createChart()
{
nv.addGraph(
function()
{
gChart = nv.models.lineChart()
.options({
duration: 15,
useInteractiveGuideline: true
});
gChart.showLegend(true)
.focusEnable(false)
.margin({left: 80, right: 50})
gChart.xAxis
.axisLabel("Date")
.tickFormat(function(d) { return d3.time.format("%d-%b-%y")(new Date(d)); });
gChart.xScale(d3.time.scale());
gChart.yAxis
.axisLabel("Count");
let xyPars = ...; // Data from elsewhere
let data = [
{
key: "Default Series", values: xyPairs), color: "#00ff00"
},
];
d3.select("#chart1").append("svg")
.datum(data)
.transition()
.duration(0)
.call(gChart);
nv.utils.windowResize(function() { gChart.update() });
return gChart;
});
}
这很好用,我得到一个漂亮的小图表。但是现在我想让用户添加另一个系列。我不知道该怎么做。数据是否应该是我修改的全局数据,并且图表会自动更新(UPDATE:似乎不起作用)?