C3: D3 4.0兼容性

创建于 2016-04-12  ·  30评论  ·  资料来源: c3js/c3

与D3 4.0兼容吗?

C-feature-request question

最有用的评论

这个问题有更新吗?

所有30条评论

我只是在0.4.11-rc4版本上安装了C3,在4.0.0-alpha.29版本上安装了D3,看来它不起作用。 :(

不,它不起作用D3 4.0中有一些重大更改,因此也需要更新c3.js调用。

请参阅此处以供参考:

4.0版意味着它是主要版本,并且不向后兼容。

https://github.com/visfest/topics2015/blob/master/d3-v4.md

有趣。 也许这是一个很好的机会,可以重写大部分代码库以使其更具模块化,例如,我正在研究Webpack fork 。 因为现在所有东西都在D3中使用Rollup中的ES6导入,所以通过更好地使用模块来使诸如C3摇树之类的事情真的很聪明。

就是说,我远不及JS设计模式专家—如果您看看我的叉子,我基本上只是将每个文件导入为CommonJS,并保持串联过程如何构建该库。 任何有关如何重构为模块化的建议将不胜感激。

我一直在考虑派生c3,我将其大量用于内部工具并积极维护自己的版本。 我不得不修复其中的许多错误,不幸的是,我知道对该存储库的任何提交都将被接受。

我添加的一些内容是属性和选择器的缓存,这种性能在图表重绘方法和初始呈现方式上提高了两倍。 我还必须添加一些功能,例如渲染渐变图的功能和更好的工具提示。 使用该库时,我必须实施无数其他未记录的修复程序。

拥有c3.core会很有意义,然后可以包含所有图表以生成超精简版,基本上只需要用户要求核心库和所需的图表,在我的情况下,我仅使用其中的4个c3中的图表。

更不用说c3中可能包含的D3-4.0改进。 无论如何,我都可以赞叹这个库,但是它是最好的库之一,很遗憾我们不能为此库做贡献。

我玩过c3和d3 @ v4。 某些核心d3命名空间不再存在(例如d3.behavior),所以我无法超越。

但是,通过替换c3的concat和d3 smash任务以使用ES6导入和导出,我设法获得了一些汇总功能。 那并没有多少空间可以晃动三下,但是我还没有完成修补工作。

@abacaj我过去所做的就是将其分叉到一个我只是为了保留我的开源项目和长期分叉的组织中: https :

@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应该是三个独立的模块。 前述模块的一些静态方法应单独成为方法。

到目前为止,我根据实验结果进行了公关: https

这不包括对d3的任何更改。 这项更改意味着将使用最小的d3 @ 3骨架并用d3 @ 4子模块对其进行猴子修补,将在#1765的基础上进行构建。

这个问题有更新吗?

如果没有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

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

Saikat-Sinha picture Saikat-Sinha  ·  3评论

aishwaryak picture aishwaryak  ·  4评论

jstone-ponderosa picture jstone-ponderosa  ·  3评论

udhaya2kmrv picture udhaya2kmrv  ·  3评论

unlight picture unlight  ·  3评论