对于 Protovis 的新手来说,这是一个相当艰巨的项目,但也许你可以帮我把它分成可消化的部分?
我想要构建的是一个“交互式区域图”,如下所示:
首先,它是数据......我在 Excel 中有省份的数据:
省 10 年 100 1000 10000 1970 年 2 4 6 3 1971 年 3 6 8 5 B 1970 6 9 12 6 乙 1971 4 8 11 8 ………… . . .
对于每个省和年份,我希望能够绘制一张面积图:
vis.add(pv.Area)
.data(data.ProvinceA[1970])
.bottom(1)
.interpolate("basis")
.left(function(d) x(d.x))
.height(function(d) y(d.y))
.fillStyle("rgb(21,173,210)")
.anchor("top").add(pv.Line)
.lineWidth(3);
然后我想添加两种类型的交互:
- 省份选择
- 时间滑块
选择复选框和时间滑块共同决定了在任何给定时间哪些区域是可见的。例如,如果选择省 A 并且年份是 1984,则仅显示该区域。如果现在拖动时间滑块,则现在会显示省 A 的相应年份。如果选中另一个省,则会覆盖这些区域,并且当时间滑块移动时会重绘两个区域。
普罗托维斯问题:
- 如何格式化此应用程序的数据(省、年、x、y)?
- 如何实现复选框与区域的绑定?
- 如何实现时间滑块?在 Protovis 中还是像带有触发重新渲染图形的侦听器的外部组件一样?