使用d3.js,我如何使用相同的脚本创建具有3个数据源的3个图表
With d3.js, how can I use the same script to create 3 charts with 3 datasources?
想象一下,我有一个带有#chart1#chart2和#chart3的index.html
我想用三个不同的数据文件来填充这三个图表,但要使用相同的脚本。
目前,我只在脚本文件中复制了3次脚本,并进行了必要的更新(即将#chart1换成#chart2,将1.tsv1换成2.tsv等)。
我如何才能更聪明/更优雅地做到这一点?
Mike Bostock的一个优秀教程概述了一种可能的方法,可以在这里找到:走向可重用图表
简单地尝试和总结一下,它提出了一种定义可重用图表的标准方法,该方法非常适合D3处理数据和选择的方式。首先你定义你的图表:
function reusableChart() {
//variables, etc.
function my() {
// chart generation code
}
//getter-setter methods
return my;
}
然后,您将实例化这个图表生成器,选择元素并以通常的D3方式将数据绑定到它们,最后调用生成器函数:
var myChart = reusableChart().setValue("example", 0);
d3.tsv("1.tsv", function(error, data) {
d3.select("#chart1").datum(data).call(myChart);
});
//etc..
相关文章:
- onkeyup无法动态创建多个文本区域
- 两个指令创建新的继承的和隔离的作用域-元素得到哪个
- 在三个.js中创建球体(例如地球)的磁力线
- 如何创建包含多个视频的视频横幅
- 在页面上创建多个元素,而不是一个发生更改的元素
- sailsjs在创建两个模型时的错误处理
- 使用数据数组创建多个类似组件
- 创建具有2个唯一数字的Javascript数组
- 从字符串创建dom元素时添加多个类
- 标签的rggraph问题Above未出现在第二个图形创建中
- 如何在 Angular JS 中从关联数组创建多个复选框
- 如何在同一浏览器屏幕中创建多个窗口
- 如何创建可从多个应用程序使用的PHP登录web服务
- 如何创建一个确定2个数字之间值的函数
- “动态创建的表”上的复选框(每行最多只能选择1个)
- D3.js如何只创建一个绑定到多个数据项的数据集的元素
- Angular.js:使用ng repeat创建2个html容器
- 使用jQuery创建具有不同类名或ID的多个元素
- 如何从带有多个对象的JSON字符串创建JSON对象
- 在新表单上使用JavaScript创建多个共享点项目,但将下一页加载延迟到全部创建