D3 4.0との互換性はありますか?
C3をバージョン0.4.11-rc4
インストールし、D3をバージョン4.0.0-alpha.29
インストールしましたが、機能しないようです。 :(
いいえ、機能しません。D34.0にはいくつかの重大な変更があるため、c3.js呼び出しも更新する必要があります。
参考のためにここを参照してください:
バージョン4.0は、メジャーリリースであり、下位互換性がないことを意味します。
面白い。 おそらくこれは、Webpackフォークで研究し
とは言うものの、私はJSデザインパターンプロにはほど遠いです。フォークを見ると、基本的には、連結プロセスがライブラリを構築する方法を維持しながら、各ファイルをCommonJSとしてインポートしただけです。 よりモジュール化するためにリファクタリングする方法の提案は大歓迎です。
私はc3をフォークすることを考えていました。私はそれを内部ツールに多用し、自分のバージョンを積極的に維持しています。 私はその中の多くのバグを修正しなければなりませんでしたが、残念ながら、このリポジトリへのコミットは受け入れられないことを知っていました。
私が追加したもののいくつかは、属性とセレクターのキャッシュです。これにより、チャートの再描画メソッドと初期レンダリングが2倍に向上しました。 また、グラデーションチャートをレンダリングする機能やより優れたツールチップなどの機能を追加する必要がありました。 このライブラリの使用中に実装しなければならなかった、文書化されていない他の無数の修正。
c3.coreを使用するのは理にかなっています。そうすれば、すべてのチャートを含めてスーパーリーンビルドを作成できます。基本的に、ユーザーがコアライブラリと必要なチャートを要求するだけで、私の場合は4つしか使用していません。 c3のチャート。
c3に含まれる可能性のあるD3-4.0の改善は言うまでもありません。 とにかく私はこのライブラリについて怒鳴ることができますが、これは私たちがこのライブラリに貢献できないのは悲しいことですが、そこにある最高のライブラリの1つです。
私はc3とd3 @ v4で遊んだことがあり
ただし、c3のconcatタスクとd3 smashタスクをES6のインポートとエクスポートを使用するように置き換えることで、なんとかロールアップの甘さを得ることができました。 それは3回振る余地をあまり残しませんが、私はいじくり回していません。
@abacaj過去に行ったことは、オープンソースプロジェクトと長期フォークを保持するためだけに作成した組織へのフォークでした: //github.com/huaofoundrie。 興味があれば教えてください。そこからc3nextgenを管理できるように、管理者権限を付与します。
@abacajと@amenadielこんにちは! まだあきらめないでください。0.4.11をできるだけ早くプッシュするために、問題キューやその他の場所で膨大な量の作業を行うことを計画しています。
その後、新しい機能のリリースのために、あなたが言及したことの多くをライブラリに取り込むことを本当に目指しています。うまくいけば、将来的にはるかに速く反復します。 どういうわけかあなたに2人を巻き込んでもらいたいです( @abacaj 、あなたの考えre:c3.coreはスポットオンです、私はここ数日それを正確に行う方法を検討してきました); あなたが遭遇した問題を解決している間、私が見て、おそらくあなたがしたことを文書化/信用できるように、あなたがあなたのプライベートフォークをどこかに押してくれる可能性はありますか?
ありがとう! 😄
@aendrew確かに、このプロジェクトを再び動かしたいのであれば、もちろん私の最初の選択はメインリポジトリに貢献することです。
@amenadielそれは素晴らしいことです—実験をどこかに押して
最近のPOCを作成します
v4が正式にリリースされたようです。 c3を通じてアップデートが利用可能になるのを見るのは素晴らしいことです
@traviに同意し、少なくとも最初の「gettingstarted」の例がd34.0.0では機能しないことを確認します。 今は大丈夫です。bowerによって提案されたd33.5.0バージョンを使用しますが、すべてのバージョンを最新の状態にして適切に機能させることは素晴らしいことです。
@alundiak et al、それは間違いなく4.0ではそのままでは機能しません。 D3 v4の名前空間はまったく異なり、下位互換性はありません。 v4への更新は非常に簡単な作業ではありません。
私は別のアプローチを始めています。 c3をes6モジュールに分離すると役立つ場合があります。
d3にES6シムを使用する私の最初のアプローチは、ほとんどのテストに合格していますが、フォルダー構造をモジュール構造と整合させるまでは、多くの作業が必要です。
少なくともChart、Chartinternal、Axisは3つの別々のモジュールである必要があります。 前述のモジュールのいくつかの静的メソッドは、それ自体でメソッドになるはずです。
この問題に対する更新はありますか?
D4のバージョン4への更新がないと、このライブラリを使用できなくなります:/
@Niondir好奇心から、なぜこれが当てはまるのですか? V4は、機能や安定性に大きな変更をD3にもたらしません。 プロジェクトの他の場所でD3v4を使用したい場合(およびC3のバージョンが競合を引き起こしている場合)を除いて、C3が使用するD3のバージョンはそれほど重要ではありません...確かに、この仮定が間違っていれば、v4アップグレードを進めるためのプレッシャーが高まる可能性があるため、お知らせください。
とにかく、今週は#1765で@amenadielの広範なPRを検討しており、最終的にはそれを
セレクターにmerge()関数がないという問題を覚えています。
@Niondirはい、v4にはselection.merge
がありますが、v3にはありません—しかし、それはライブラリの日常的な使用にどのように影響しますか? C3以外でD3を使用していない場合は、ライブラリを更新するまで、v4を使用しても具体的なメリットはありません。 誤解しないでください。C3の開発のコンテキスト内でv4に更新する理由はたくさんあります(カスタムビルドとライブラリサイズの縮小)が、エンドユーザーの観点からは理解できません。現在の欲求。 ユースケースに関するこれ以上の情報は大歓迎です! 😄
私たちが利用したいと思っていた問題の1つは、v4での日時の解析です。 v3は、ISO-8601日付のTZオフセット忠実度でミリ秒をサポートしていませんが、v4はサポートしています。 c3の外部でd3フォーマッターを使用しますが、両方のバージョンをロードせずに改善された解析を利用することはできません。
乾杯@travi 、それは役に立ちます。 :+1:
d3-time-format
だけを別のライブラリとしてインストールし、それを使用してデータを処理し、それをC3に渡した場合、それは機能しますか? そうでない場合、それは私たちが始めるのに良い最初のユーザーストーリーです。
システムのその部分に十分に深く関わってからしばらく経っていることを認めます。そのため、もう頭があまりよくありませんが、それは私たちを近づけるように思えます。
他のフォーマッターの更新を取りやめた理由は、c3がdata.json
を.generate()
渡した解析に使用していたパーサーを交換する方法がなかったためだと確信しています。 。 v4パーサーを使用してそれだけ多くを取得する方法があれば、それは私たちのユースケースにとって正しい方向への良い一歩になると思います。
私のユースケースをミックスに投入するだけです。
私たちの実装には、バージョン4ではるかにうまく機能するように更新されたD3パックレイアウトが必要です。
変更ログから:
円パッキングレイアウトd3.packは完全に書き直され、Wang et al。のアルゴリズムをより適切に実装し、主要なバグを修正して結果を改善しました。 Wang et alが使用したおおよその答えではなく、Welzlのアルゴリズムを使用して、各親の正確な最小円を計算するようになりました。
手動でチャートを作成する代わりに、C3.jsの実装を検討しています。 ただし、これはそのスイッチの取引ブレーカーです。
私はC3.jsを批判しようとはしていません。D3V4にアップグレードするタスクを完全に認識しています。 この特定の問題に関する決定を下すのに役立つ場合に備えて、シナリオを提供するだけです。
みんなありがとう!
@beaudesigns乾杯、それはとても役に立ちます。
これまでv1で行ったことを使用して、WIPプルリクエストを作成します。マージする準備ができるまで、それを処理できます。 私は確かに選挙と私が取り組んでいる本の両方で忙しいですが、これを推進するのを喜んで手伝ってくれる人々が貢献できればそれが大好きです。
これに関する更新はありますか? C3をD3v4と互換性を持たせるための作業が少し行き詰まっているようです。
この問題の状況はどうなっていますか? D3 4.xでCannot read property 'format'
エラーが発生しました
ここでも同じですが、メンテナが移行で最も価値のあるものを教えてくれれば、移行を支援したいと思います。 素晴らしい仕事をありがとう!
乾杯、
私は#2246でこれに取り組んでいます。 まだいくつかの修正が必要ですが、基本的にはうまく機能しているように見えます。
https://github.com/c3js/c3/commit/ccff119809de05a68ff3e33521a79566bf12b903によって追加されたD3v4のサポートは、 0.5.0
リリースで利用可能になるはずです。
C3JSを最新に更新したときに、Gaugeで1つの問題が見つかりました。 こちらはhttps://github.com/c3js/c3/issues/2390です
最も参考になるコメント
この問題に対する更新はありますか?