NVD3 -如何刷新数据功能,以产生新的数据点击
NVD3 - How to refresh the data function to product new data on click
我有一个折线图,每次页面刷新它都会改变数据,这很好,但我需要通过用户点击来刷新。这是因为页面上最终会有其他输入字段,刷新页面会破坏当前会话。
jsfiddle - http://jsfiddle.net/darcyvoutt/dXtv2/
下面是创建这一行的代码:function economyData() {
// Rounds
var numRounds = 10;
// Stability of economy
var stable = 0.2;
var unstable = 0.6;
var stability = unstable;
// Type of economy
var boom = 0.02;
var flat = 0;
var poor = -0.02;
var economyTrend = boom;
// Range
var start = 1;
var max = start + stability;
var min = start - stability;
// Arrays
var baseLine = [];
var economy = [];
// Loop
for (var i = 0; i < numRounds + 1; i++) {
baseLine.push({x: i, y: 1});
if (i == 0) {
economyValue = 1;
} else {
var curve = Math.min(Math.max( start + ((Math.random() - 0.5) * stability), min), max);
economyValue = Math.round( ((1 + (economyTrend * i)) * curve) * 100) / 100;
}
economy.push({x: i, y: economyValue});
}
return [
{
key: 'Base Line',
values: baseLine
},
{
key: 'Economy',
values: economy
}
];
}
这是我试图写的,但更新失败:
function update() {
sel = svg.selectAll(".nv-line")
.datum(data);
sel
.exit()
.remove();
sel
.enter()
.append('path')
.attr('class','.nv-line');
sel
.transition().duration(1000);
};
d3.select("#update").on("click", data);
我对你的代码做了不同的处理。
// Maintian an instance of the chart
var chart;
// Maintain an Instance of the SVG selection with its data
var chartData;
nv.addGraph(function() {
chart = nv.models.lineChart().margin({
top : 5,
right : 10,
bottom : 38,
left : 10
}).color(["lightgrey", "rgba(242,94,34,0.58)"])
.useInteractiveGuideline(false)
.transitionDuration(350)
.showLegend(true).showYAxis(false)
.showXAxis(true).forceY([0.4, 1.6]);
chart.xAxis.tickFormat(d3.format('d')).axisLabel("Rounds");
chart.yAxis.tickFormat(d3.format('0.1f'));
var data = economyData();
// Assign the SVG selction
chartData = d3.select('#economyChart svg').datum(data);
chartData.transition().duration(500).call(chart);
nv.utils.windowResize(chart.update);
return chart;
});
update()
函数是这样的:
function update() {
var data = economyData();
// Update the SVG with the new data and call chart
chartData.datum(data).transition().duration(500).call(chart);
nv.utils.windowResize(chart.update);
};
// Update the CHART
d3.select("#update").on("click", update);
这是你的代码的工作版本的链接。
希望能有所帮助。
相关文章:
- 美国地图插件,具有状态数据/悬停功能的新按钮
- 控制器切换后匿名功能中的访问服务数据发生变化
- 带有嵌套表的数据表;t没有功能
- 从 AngularJS 中的控制器功能发送数据以供查看
- 从文件目录结构创建JSON数据的有效功能
- 是否有任何功能可以合并两个JSON数据集并替换旧信息?(节点.JS)
- 成功:功能(数据);不使用命名函数
- d3中的数据联接;我一定没有正确理解选择和/或数据键功能
- EXT JS : 数据存储过滤器功能不起作用
- GAS - 等到用户输入数据后,功能才会继续
- 对多个数据集多次使用单个把手功能
- 文件上传功能会显示 Safari 和 Chrome iOS8.1.2 上带有空字符串的数据
- 如何在输入下从数据列表中选择一个选项后立即触发功能
- jQuery功能,用于隐藏基于未在点击上运行的HTML5数据标签的元素
- 添加将Excel数据粘贴到Django表单的功能
- 搜索功能在 jquery 数据表中中断
- 仅在 AngularJS 中加载数据绑定功能
- 在一个php页面中使用ajax加载搜索后数据功能
- NVD3 -如何刷新数据功能,以产生新的数据点击
- Ios应用内采购请求数据功能未启动