与D3 4.0兼容吗?
我只是在0.4.11-rc4
版本上安装了C3,在4.0.0-alpha.29
版本上安装了D3,看来它不起作用。 :(
不,它不起作用D3 4.0中有一些重大更改,因此也需要更新c3.js调用。
请参阅此处以供参考:
4.0版意味着它是主要版本,并且不向后兼容。
有趣。 也许这是一个很好的机会,可以重写大部分代码库以使其更具模块化,例如,我正在研究Webpack fork 。 因为现在所有东西都在D3中使用Rollup中的ES6导入,所以通过更好地使用模块来使诸如C3摇树之类的事情真的很聪明。
就是说,我远不及JS设计模式专家—如果您看看我的叉子,我基本上只是将每个文件导入为CommonJS,并保持串联过程如何构建该库。 任何有关如何重构为模块化的建议将不胜感激。
我一直在考虑派生c3,我将其大量用于内部工具并积极维护自己的版本。 我不得不修复其中的许多错误,不幸的是,我知道对该存储库的任何提交都将被接受。
我添加的一些内容是属性和选择器的缓存,这种性能在图表重绘方法和初始呈现方式上提高了两倍。 我还必须添加一些功能,例如渲染渐变图的功能和更好的工具提示。 使用该库时,我必须实施无数其他未记录的修复程序。
拥有c3.core会很有意义,然后可以包含所有图表以生成超精简版,基本上只需要用户要求核心库和所需的图表,在我的情况下,我仅使用其中的4个c3中的图表。
更不用说c3中可能包含的D3-4.0改进。 无论如何,我都可以赞叹这个库,但是它是最好的库之一,很遗憾我们不能为此库做贡献。
@abacaj和@amenadiel嗨! 请暂时不要放弃-我正计划在问题队列和其他地方进行大量工作,以真正尝试尽快获得0.4.11的支持。
在那之后,我们将真正希望将您提到的内容带入库中以发布新功能,并希望在将来更快地进行迭代。 我希望以某种方式让你们两个参与进来(
谢谢! 😄
@aendrew可以肯定的是,如果您愿意再次推动该项目,那么我的第一选择当然是为主要回购做贡献。
@amenadiel太好了-您介意将您的实验推进到某个地方吗? 最好再看看我们如何更好地模块化代码库。 它肯定需要它,我实在太讨厌连续连接源代码了……
这几天我会做一个POC
看起来v4已正式发布。 很高兴看到通过c3提供了更新
同意@travi ,并且我确认,至少第一个“ gettingstarted”示例不适用于d3 4.0.0。 现在对我来说还可以,我使用Bower建议的d3 3.5.0版本,但是将所有版本更新为最新版本并正常工作将是很棒的。
@alundiak等人,它绝对不会在4.0下按原样工作。 D3 v4具有完全不同的名称空间,绝不向后兼容。 更新到v4是一项非常重要的任务。
我正在开始另一种方法。 将c3分成es6模块可能会有所帮助。
我的第一种方法是将ES6垫片用于d3,它通过了大部分测试,但是在我们使文件夹结构与模块结构保持一致之前,还有很多工作要做。
至少Chart,Chartinternal和Axis应该是三个独立的模块。 前述模块的一些静态方法应单独成为方法。
这个问题有更新吗?
如果没有D4第4版的更新,我将无法再使用此库:/
@Niondir出于好奇,为什么会这样? V4不会对D3带来任何功能或稳定性方面的巨大变化。 除非您想在项目的其他地方使用D3 v4(并且C3的版本引起冲突),否则C3使用的D3的版本应该没什么大不了的。 ,请告诉我们,因为这可能会进一步推动v4升级。
无论如何,本周我将关注
我只记得选择器上缺少merge()函数的一些问题。
@Niondir好的,v4有selection.merge
,而v3没有-但是这如何影响您对库的日常使用? 如果您不在C3之外使用D3,则在我们更新库之前,使用v4并没有明显的好处。 别误会,在开发C3的背景下有很多充分的理由让我们更新到v4(自定义版本和缩小的库大小),但是从最终用户的角度来看,我不理解目前的愿望。 任何有关您的用例的信息都将受到欢迎! 😄
我们一直想利用的一个问题是v4中的日期时间解析。 对于ISO-8601日期,v3不支持具有TZ偏移保真度的毫秒,但v4则支持。 我们确实在c3之外使用了d3格式化程序,但无法利用不加载两个版本的改进解析功能。
欢呼@travi ,这很有帮助。 :+1:
如果仅将d3-time-format
作为单独的库安装并使用该库处理数据,然后将其传递给C3,这行得通吗? 如果没有,那对于我们来说是一个很好的初始用户故事。
我承认这已经有一段时间了,因为我对系统的那部分内容足够深入,所以我现在也不太了解它了,但这似乎会让我们接近。
我可以肯定地说,我之所以不更新其他格式化程序,是因为似乎没有一种方法可以交换c3用来解析传递给.generate()
data.json
的解析器。 。 如果有一种方法可以使用v4解析器获得大量收益,那么我认为这对于我们的用例而言是朝正确方向迈出的重要一步。
只是把我的用例放进去。
我们的实现需要D3 Pack布局,该
从变更日志:
圆形填充布局d3.pack已被完全重写,以更好地实现Wang等人的算法,修复了主要错误并改善了结果! 现在,使用维尔茨(Welzl)算法为每个父母计算出确切的最小封闭圆,而不是Wang等人使用的近似答案。
我正在研究实现C3.js,而不是尝试手动编写图表。 不过,这对于该开关来说是一个突破。
我完全不批评C3.js,我完全认识到升级到D3 V4的任务。 仅提供我们的方案,以防在此特定问题上做出决定。
哥们,谢啦!
@beaudesigns干杯,这非常有帮助。
到目前为止,我将使用v1创建一个WIP拉取请求,我们可以对其进行处理,直到可以合并为止。 诚然,我对选举和正在编写的书都很着迷,但是如果愿意帮助推动这一工作的人能够做出贡献,我会喜欢的。
有什么更新吗? 似乎使C3与D3 v4兼容的工作有些停滞。
此问题的状态如何? 我的D3 4.x有Cannot read property 'format'
错误
在这里也一样,但是如果维护人员告诉我们在迁移过程中对他们最有价值的内容,我们愿意帮助迁移。 再次感谢您的出色工作!
干杯,
我正在#2246中对此进行处理。 仍然需要一些修复,但是看起来基本上可以正常工作。
https://github.com/c3js/c3/commit/ccff119809de05a68ff3e33521a79566bf12b903添加的对D3 v4的支持应在0.5.0
版本中提供。
当我将C3JS更新到最新版本时,在仪表中发现了一个问题。 这是https://github.com/c3js/c3/issues/2390
最有用的评论
这个问题有更新吗?