我有图表类型切换器(pieChart / lineChart),日期选择器和一个svg元素。
更改图表类型或日期会触发ajax请求(饼图/行具有不同响应数据结构的不同网址),然后重绘我的图表。像这样:
buildReport: function (data) {
var that = this;
// Format incoming data to chart's format
this.structure = this.formatters[this.type].call(this, data);
this.svgElem.empty(); // jQuery empty
nv.addGraph(function () {
var chart = nv.models[that.type](); // that.type - pieChart or lineChart
chart.options(that.options[that.type] || {});
d3.select(that.svgElem)
.datum(that.structure)
.transition()
.duration(500)
.call(chart);
return chart;
});
}
在图表类型或日期更改时调用此函数(ajax请求可能会缓存某些条件)。使用svgElem.empty()是对的吗?或者还有另一种方法来破坏图表并绘制另一个图表?
还有一些其他问题:
1)如何在图表的中心底部绘制图例?有什么选择吗?
2)默认情况下如何在“扩展”状态下绘制堆积区域图表?我需要隐藏控件(showContols:false选项)并绘制扩展的stackedArea图表
谢谢
答案 0 :(得分:1)
要使用非堆叠样式绘制图表,您可以使用
chart.style( “展开”); //用于扩展 chart.style( “流”); // for stream