我正在尝试将以下两个“官方”D3子弹图表示例合并为一个:
http://bl.ocks.org/mbostock/4061961
http://boothead.github.io/d3/ex/bullet.html
我让前者在本地工作,我确实设法通过用“d3.bullet”替换“d3.chart.bullet”来“插入”后者的JS代码(并重新引用DOM对象和“随机化”事件监听器)。
但是,与本地标签类型“.ticks”调用的兼容性会被破坏。在一个理想的世界里,我希望在底部有等距的刻度,当地的“数据标签刻度”与子弹顶部略有不同的样式。
这有可能吗?我开始怀疑它,因为D3次要版本似乎不同(两者都是v2.x,这是好的,因为我需要兼容nvd3)。不管怎么说,我知道如何实现我的目标,例如:通过诉诸“正确”的数据标签而不是在.ticks电话上?谢谢!
答案 0 :(得分:3)
好的,首先是混淆解决方案。在这个例子中:
http://boothead.github.io/d3/ex/bullet.html
两个不同的库使魔术发生 - 版本2.1中的d3.js和d3.chart.js。在本地保存整个示例时会出现问题,因为浏览器显然只考虑文件名中的第一个点来处理扩展。因此在本地,d3.chart.js变为d3_002.js,使其看起来像是D3 v2的第二个实例。当然,将其移出会导致代码失败。
获得的经验:始终查看原始源中的原始命名约定。一旦我实现了“理想世界”的解决方案,我就会更新这个答案。
编辑:还在努力,关键是d3.chart.js中的某个地方。至少我开始并克服了我最初的问题,所以我会接受它作为答案。