C3: Kompatibilitas D3 4.0

Dibuat pada 12 Apr 2016  ·  30Komentar  ·  Sumber: c3js/c3

Apakah ada kompatibilitas dengan D3 4.0?

C-feature-request question

Komentar yang paling membantu

apakah ada pembaruan untuk masalah ini?

Semua 30 komentar

Saya baru saja menginstal C3 pada versi 0.4.11-rc4 dan D3 pada versi 4.0.0-alpha.29 dan sepertinya tidak berfungsi. :(

Tidak, itu tidak berfungsi, ada beberapa perubahan yang melanggar di D3 4.0 dan karena itu akan mengharuskan panggilan c3.js diperbarui juga.

Lihat di sini untuk referensi:

versi 4.0 berarti rilis utama dan tidak kompatibel dengan versi sebelumnya.

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

Menarik. Mungkin ini adalah kesempatan yang baik untuk menulis ulang sebagian besar basis kode menjadi lebih modular, seperti saya meneliti di garpu Webpack saya . Karena semuanya sekarang menggunakan impor ES6 dengan Rollup di D3, mungkin sangat pintar untuk mengaktifkan hal-hal seperti goyangan pohon dengan C3 melalui penggunaan modul yang lebih baik.

Yang mengatakan, saya tidak berada di dekat pola desain JS pro - jika Anda melihat garpu saya, pada dasarnya saya baru saja mengimpor setiap file sebagai CommonJS, menjaga bagaimana proses penggabungan membangun perpustakaan. Setiap saran bagaimana refactor menjadi lebih modular akan sangat dihargai.

Saya telah memikirkan untuk forking c3, ​​saya banyak menggunakannya untuk alat internal dan secara aktif mempertahankan versi saya sendiri. Saya harus memperbaiki banyak bug di dalamnya dan sayangnya, saya tahu bahwa setiap komitmen terhadap repo ini tidak akan diterima.

Beberapa hal yang saya tambahkan adalah caching atribut dan penyeleksi, ini meningkatkan kinerja dua kali lipat pada metode penggambaran ulang grafik dan render awal. Saya juga harus menambahkan fitur seperti kemampuan untuk membuat grafik gradien dan tooltips yang lebih baik. Banyak perbaikan tidak berdokumen lainnya yang harus saya terapkan saat menggunakan perpustakaan ini.

Masuk akal untuk memiliki c3.core dan kemudian semua bagan dapat dimasukkan untuk menghasilkan build yang super ramping, pada dasarnya hanya pengguna yang memerlukan lib inti dan bagan yang mereka butuhkan, dalam kasus saya, saya hanya menggunakan 4 dari grafik di c3.

Belum lagi perbaikan D3-4.0 yang bisa dimasukkan di c3. Pokoknya saya bisa mengoceh tentang perpustakaan ini tetapi ini adalah salah satu yang terbaik di luar sana hanya sedih kami tidak dapat berkontribusi untuk yang satu ini.

Saya telah bermain-main dengan c3 dan d3 @ v4. Beberapa ruang nama inti d3 tidak ada lagi (d3.behavior, misalnya) jadi saya tidak bisa melewatinya.

Namun, saya berhasil mendapatkan beberapa manis Rollup dengan mengganti tugas concat dan d3 smash c3 untuk menggunakan impor dan ekspor ES6. Itu tidak menyisakan banyak ruang untuk tiga kali gemetar, tapi aku belum selesai mengutak-atik.

@abacaj apa yang telah saya lakukan di masa lalu adalah bercabang menjadi organisasi yang saya buat hanya untuk mengadakan proyek sumber terbuka dan garpu jangka panjang saya: https://github.com/huaofoundrie. Jika Anda tertarik, beri tahu saya dan saya akan memberi Anda izin admin sehingga kita bisa menjaga c3 nextgen dari sana

@abacaj dan @amenadiel Hai! Harap jangan menyerah dulu - Saya berencana melakukan tahap pekerjaan besar pada antrean masalah dan di tempat lain untuk benar-benar mencoba dan mendorong 0.4.11 secepatnya.

Setelah itu kami benar-benar akan mencari untuk mendapatkan banyak dari apa yang telah Anda sebutkan ke dalam perpustakaan untuk rilis fitur baru, semoga iterasi jauh lebih cepat di masa depan. Saya ingin Anda berdua terlibat entah bagaimana ( @abacaj , pemikiran Anda tentang: c3.core tepat, saya telah mempertimbangkan bagaimana melakukan hal itu beberapa hari terakhir); Adakah kemungkinan Anda bersedia mendorong garpu pribadi Anda ke suatu tempat sehingga saya dapat melihat dan mungkin mendokumentasikan / menghargai apa yang telah Anda lakukan saat menyelesaikan masalah apa pun yang Anda temui?

Terima kasih! 😄

@aendrew pastinya, jika Anda ingin proyek ini berjalan lagi, maka pilihan pertama saya adalah berkontribusi pada repo utama.

@amenadiel Itu luar biasa - maukah Anda mendorong eksperimen Anda ke suatu tempat? Akan lebih baik untuk melihat pandangan lain tentang bagaimana kami mungkin dapat memodulasi basis kode dengan lebih baik. Ini pasti membutuhkannya, saya sangat muak karena harus terus menerus menggabungkan kode sumber ...

Saya akan membuat POC suatu hari ini

Sepertinya v4 dirilis secara resmi . akan sangat bagus untuk melihat bahwa pembaruan tersedia melalui c3

Setuju dengan @travi , dan saya mengonfirmasi, bahwa setidaknya contoh "mulai" pertama tidak berfungsi dengan d3 4.0.0. Tidak apa-apa bagi saya sekarang, saya menggunakan versi d3 3.5.0 yang disarankan oleh bower, tetapi akan lebih baik jika semua versi diperbarui dan berfungsi dengan baik.

@alundiak dkk, ini pasti tidak akan berfungsi sebagaimana adanya dengan 4.0. D3 v4 memiliki namespace yang sangat berbeda dan sama sekali tidak kompatibel dengan versi sebelumnya. Memperbarui ke v4 adalah tugas yang sangat tidak sepele.

Saya memulai pendekatan lain. Memisahkan c3 menjadi modul es6 mungkin bisa membantu.

Pendekatan pertama saya, menggunakan shim ES6 untuk d3, melewati sebagian besar ujian, tetapi ada banyak pekerjaan yang harus dilakukan sampai kita membuat struktur folder yang koheren dengan struktur modul.

Setidaknya Chart, Chartinternal dan Axis harus menjadi tiga modul yang terpisah. Beberapa metode statis dari modul yang disebutkan di atas harus menjadi metode mereka sendiri.

Saya membuat PR dengan hasil eksperimen saya sejauh ini: https://github.com/c3js/c3/pull/1765

Ini tidak termasuk perubahan apa pun ke d3. Perubahan itu, yang berarti menggunakan kerangka d3 @ 3 minimal dan tambalan monyet dengan submodul d3 @ 4 , akan dibangun atas dasar # 1765.

apakah ada pembaruan untuk masalah ini?

Tanpa pembaruan ke Versi 4 dari D4 saya tidak dapat menggunakan lib ini lagi: /

@Niondir Karena penasaran, kenapa ini terjadi? V4 tidak membawa perubahan besar dalam fungsionalitas atau stabilitas D3. Kecuali jika Anda ingin menggunakan D3 v4 di tempat lain dalam proyek Anda (dan versi C3 menyebabkan konflik), versi D3 yang digunakan C3 seharusnya tidak terlalu berpengaruh ... Memang, jika saya salah dalam asumsi ini , beri tahu saya karena ini dapat meningkatkan tekanan untuk memajukan peningkatan v4.

Terlepas dari itu, saya melihat PR ekstensif @amenadiel di # 1765 minggu ini, dan pada akhirnya dapat menggunakannya sebagai dasar untuk meningkatkan ke V4 untuk C3 v1. Harap bersabar semuanya, ini mungkin masalah paling sepele di seluruh antrian saat ini. 😄

Saya baru ingat beberapa masalah dengan fungsi merge () yang hilang pada pemilih.

@Niondir Oke, v4 memiliki selection.merge , sedangkan v3 tidak - tapi bagaimana hal itu mempengaruhi penggunaan perpustakaan sehari-hari Anda? Jika Anda tidak menggunakan D3 di luar C3, tidak ada manfaat nyata menggunakan v4 hingga kami memperbarui pustaka. Jangan salah paham, ada banyak alasan bagus bagi kami untuk memperbarui ke v4 dalam konteks mengembangkan C3 (build khusus dan ukuran library yang lebih kecil di antaranya), tetapi dari sudut pandang pengguna akhir saya tidak mengerti keinginan saat ini. Informasi lebih lanjut tentang kasus penggunaan Anda akan sangat disambut! 😄

satu masalah yang ingin kami manfaatkan adalah penguraian tanggal waktu di v4. v3 tidak mendukung milidetik dengan ketepatan offset TZ untuk tanggal ISO-8601, tetapi v4 mendukungnya. kami memang menggunakan format d3 di luar c3, tetapi tidak dapat memanfaatkan penguraian yang ditingkatkan tanpa memuat kedua versi.

Cheers @travi , itu membantu. : +1:

Jika Anda menginstal hanya d3-time-format sebagai perpustakaan terpisah dan memproses data dengan itu, meneruskannya ke C3, apakah itu akan berhasil? Jika tidak, itu adalah cerita pengguna awal yang bagus untuk kita mulai.

Saya akan mengakui bahwa sudah beberapa waktu sejak saya cukup dalam di bagian sistem kami, jadi saya tidak terlalu memikirkannya lagi, tetapi sepertinya itu akan membuat kami dekat.

Saya cukup yakin alasan saya mundur dari memperbarui pemformat kami yang lain adalah karena tampaknya tidak ada cara untuk menukar parser yang digunakan c3 untuk parsing data.json diteruskan ke .generate() . jika ada cara untuk mendapatkan sebanyak itu menggunakan parser v4, saya pikir itu akan menjadi langkah yang baik ke arah yang benar untuk kasus penggunaan kami.

Hanya memasukkan kasus penggunaan saya ke dalam campuran.

Implementasi kami memerlukan Tata Letak Paket D3 yang telah diperbarui untuk bekerja lebih baik di Versi 4.

Dari changelog:

Tata letak pengepakan lingkaran, d3.pack, telah sepenuhnya ditulis ulang untuk mengimplementasikan algoritme Wang et al. Dengan lebih baik, memperbaiki bug utama dan meningkatkan hasil! Algoritme Welzl sekarang digunakan untuk menghitung lingkaran tertutup terkecil yang tepat untuk setiap induk, daripada jawaban perkiraan yang digunakan oleh Wang et al.

Saya ingin menerapkan C3.js daripada mencoba menulis grafik secara manual. Ini adalah pemecah kesepakatan untuk sakelar itu.

Saya sama sekali tidak mencoba bersikap kritis terhadap C3.js, saya sepenuhnya menyadari tugas yang harus dilakukan untuk meningkatkan ke D3 V4. Hanya memberikan skenario kami seandainya itu membantu membuat keputusan tentang masalah khusus ini.

Terimakasih teman!

@beaudesigns Cheers, itu sangat membantu.

Saya akan membuat permintaan penarikan WIP dengan apa yang telah saya lakukan sejauh ini dengan v1, dan kita dapat mengerjakannya hingga siap untuk digabungkan. Saya memang sangat sibuk dengan pemilihan dan buku yang sedang saya kerjakan, tetapi saya akan senang jika orang-orang yang bersedia membantu mendorong hal ini dapat berkontribusi.

Apakah ada pembaruan tentang ini? Sepertinya pekerjaan untuk membuat C3 yang kompatibel dengan D3 v4 sedikit terhenti.

Apa status masalah ini? Saya memiliki kesalahan Cannot read property 'format' untuk D3 4.x

Sama di sini, tetapi kami bersedia membantu migrasi jika pengelola memberi tahu kami apa yang paling berharga bagi mereka dalam migrasi. Sekali lagi terima kasih atas kerja bagusnya!
Bersulang,

Saya sedang mengerjakan ini di # 2246. Masih diperlukan beberapa perbaikan, tetapi pada dasarnya terlihat berfungsi dengan baik.

Dukungan untuk D3 v4 ditambahkan oleh https://github.com/c3js/c3/commit/ccff119809de05a68ff3e33521a79566bf12b903 dan seharusnya tersedia dalam rilis 0.5.0 .

menemukan satu masalah di Gauge saat saya memperbarui C3JS ke yang terbaru. Ini dia https://github.com/c3js/c3/issues/2390

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

alantygel picture alantygel  ·  3Komentar

zachallia picture zachallia  ·  3Komentar

jstone-ponderosa picture jstone-ponderosa  ·  3Komentar

u119102 picture u119102  ·  3Komentar

aishwaryak picture aishwaryak  ·  4Komentar