我正在使用 NReco 构建数据透视表,我想显示一个与表中显示的数据相对应的图表。我正在尝试使用 c3 图表来完成此操作(真的很喜欢外观),但欢迎使用另一种图表。
我通过 ajax 发送 NReco Pivot Table 的 JSON 并遵循http://c3js.org/samples/data_rowed.html上的示例,并在以下代码中构建我的 JSON:
var pivotTable = new PivotTable(lines, columns, pivotData);
var htmlResult = new StringWriter();
var jsonResult = new StringWriter();
var pvtHtmlWr = new PivotTableHtmlWriter(htmlResult);
var chartJsonWr = new PivotTableJsonWriter(jsonResult);
pvtHtmlWr.Write(pivotTable);
chartJsonWr.Write(pivotTable);
return new {Pvt = htmlResult.ToString(), Chart = jsonResult.ToString()};
产生以下 JSON
"Chart":"{\"Columns\":[\"Year\"],\"Rows\":[\"Spot\"],\"ColumnKeys\":[[2004],[2005]],\"RowKeys\":[[\"A\"],[\"B\"],[\"C\"]],\"Values\":[[1483.0,1396.0],[1237.0,1700.0],[18276.0,17643.0]],\"GrandTotal\":41735.0,\"ColumnTotals\":[20996.0,20739.0],\"RowTotals\":[2879.0,2937.0,35919.0],\"MeasureLabels\":[\"Sum"],\"PivotDataVersion\":\"TRIAL http://www.nrecosite.com/pivot_data_library_net.aspx\"}"
在我的 ajax 调用中,我解析 Json 并尝试构建图表
success: function (response) {
$("#pvtTable").html(response.Pvt);
var crt = JSON.parse(response.Chart);
var rows = crt.RowKeys;
var vals = crt.Values;
var chart = c3.generate({
bindto:"#pvtChart",
data: {
rows: [rows, vals]
}
});
我尝试重建阵列但没有成功。所以我的问题是:我做错了什么?我可以使用 NReco Json 和 c3 或其他图表来完成此任务吗?