メインコンテンツへスキップ

マジかよ!Apache EChartsが最強のグラフ描画ライブラリって噂、マジだった

·2 分
2025/04 グラフ描画 JavaScript 可視化 データ分析 Apache

マジかよ!Apache EChartsが最強のグラフ描画ライブラリって噂、マジだった

引用元:https://news.ycombinator.com/item?id=43624220

lucasfcosta 2025-04-08T23:33:26

Briefer作るとき、色んな可視化ライブラリ試したけど、Apache EChartsがマジで最強だったわ。
他のライブラリって、見た目が微妙だったり、使いにくかったり、柔軟性が足りなかったりするんだよね。
EChartsはその3つを全部解決してる。デフォルトで綺麗だし、バックエンドでグラフの定義を計算して、必要な定義だけフロントに送れるし、柔軟性もヤバくて、普通のBIツールでできることは全部できる。マジ神。

jitbit 2025-04-11T11:24:16

EChartsの良いところ、まだあるよ!
・プロジェクトで唯一安心してアップデートできる依存関係。アップデートで壊れる心配がない。3.xから5.xへのアップグレードも余裕!npm updateするだけで全部動くとかありえない。
・SSRにもSPAにも対応。vanilla-jsだから、ReactとかVueとか、RailsとかASP.netとか、どんな環境でも動く。サーバーサイドでJSON作ってEChartsに渡せるし、Vueのリアクティブオブジェクトも使える。
・細かい調整が必要な時(例えば、円グラフのホバー時のラベルに太字でパーセンテージを表示するとか)でも、ソースコードを掘る必要がない。大体ググれば解決する。

noduerme 2025-04-09T03:01:05

ECharts、昔見たことあるかもだけど、Chart.jsで十分だったからなー。変なカスタムもできるし。ビジネス分析はMetabaseをセルフホストしてる。Metabaseの可視化オプションがもっとあれば良いんだけど、設定が楽なんだよね。カスタムチャート作るほどじゃないし。

naught0 2025-04-09T03:42:37

グラデーションの折れ線グラフを作る必要があって、y軸の各ステップが色を表してて、隣の色とブレンドされるみたいなやつ。色々試したけど、EChartsが一番しっくりきた。Reactとの連携が最初分かりにくかったけど、普通のjsライブラリと同じように使えた。EChartsマジですごい。

zurfer 2025-04-09T09:15:07

いや、それは同意できないな。
EChartsは良いけど、Plotlyも超良いし、observablehq.com/plotもマジですごくなりそう。

ramonverse 2025-04-09T09:26:35

Plotlyはドキュメントに書かれてない機能が多い。コンサルティングで開発者を助けてるからじゃないかな。

anentropic 2025-04-09T08:58:08

選ぶときに考えたのは、chart.jsはCanvasだけっぽいけど、EChartsはSVGで出力できるってことかな。何百万点もプロットするならCanvasの方が速いかもだけど、シンプルなチャートならSVGの方がCSSだけでレスポンシブにできるから、JSで再レンダリングしなくても済むんだよね

zwnow 2025-04-09T09:38:13

なるほどね、apacheの方も試してみるよ。教えてくれてありがと

stuartaxelowen 2025-04-09T01:05:05

vega/vega liteとは比べた?どうだったか気になるな

spaceribs 2025-04-09T01:21:04

どっちも使ったことあるけど、Vegaは使い道があると思う反面、Web開発者には優しくないかな。フロントエンドのエンジニアはロジック、構成、スタイリングを分けたいんだよね。JSONドキュメントに全部まとめちゃうと、開発体験が悪くなるし、独自のやり方が多くなるし。とは言え、データベースにあるJSONに全部入ってるってのは最高だよね。でも、そこまで頑張る人が少ないから、ちょっと自己満足な技術選定になっちゃうかも

RobinL 2025-04-09T07:37:45

vega liteのヘビーユーザーとしては、それは確かにそう思う。データ可視化の専門家が、研究とか分析で正確なチャートが必要な時に輝くと思う。簡単なメトリクスダッシュボードみたいなのには、開発者には難しいかもね

adeptima 2025-04-09T05:03:10

わかる

neomantra 2025-04-08T19:19:22

go-echartsもおすすめだよ[1]。Golangの型でチャートを宣言できて、GolangのJSON marshallerがJSONに変換してくれるんだ。いろんなプロジェクトで使ってて、問題とかPRがあれば、メンテナーがすぐに対応してくれる。[1] https://github.com/go-echarts/go-echarts
[2] https://github.com/NimbleMarkets/dbn-duckduck-goose/blob/mai

TheGoodBarn 2025-04-08T20:32:00

マジか、教えてくれてありがとう。GoとDuckDBをよく使うんだよね。今までJSとかhtml/templateでごまかしてたけど、これで楽しくなりそう

rochak 2025-04-09T16:27:50

マジですごい

rorylaitila 2025-04-08T18:36:15

EChartsは最高だと思う。意外とリストとか検索に出てこないんだよね。chart.jsとかgoogle chartsとかamChartsとかHighchartsとかApexChartsとか全部試したけど。うちのツール/ライブラリでも使ってるよ。https://docs.chartsql.com/

eigenvalue 2025-04-08T18:52:25

それって中国のプロジェクトだからじゃないかなー。Ant Design Componentsも同じで、マジですごいのに、もっと知られてもいいはずなのにね。

sdesol 2025-04-08T19:09:43

中国製ってのが理由の一つだと思うな。初期の頃のサンプルが中国語だけだったりして、それで尻込みした人もいるかも。確かに複雑だけど(良い意味でね)、単純なチャートを作りたい人には向かないから、有名じゃないのもわかる気がする。でも、EChartsなら企業のニーズにも応えられるんだよね。

rorylaitila 2025-04-08T19:53:50

やっぱりそうかもね。何年か前に「あのクールなチャートライブラリ」を探してたんだけど、Googleで全然出てこなかったもん。

ranger_danger 2025-04-09T04:26:59

Apache EChartsのデベロッパーとかユーザーって中国人が多いみたい。

もっとコメントを表示(1)
RowanH 2025-04-08T22:20:46

へー、教えてくれてありがとー。機能豊富そうだね!

nchmy 2025-04-09T01:14:45

参考までにリンク貼っとくね。
https://github.com/antvis
良さそうだけど、ドキュメントのウェブサイトがマジでクソ。でも最近ちょっとマシになったみたい。
e.g
https://g6.antv.antgroup.com/
全体的に見て、Apacheにしとけば間違いないと思う。

hamsterbase 2025-04-09T08:37:31

もう一個情報。antvのリーダーってechartsの開発者なんだって。

nchmy 2025-04-09T20:52:40

マジで?なんで?

athrowaway3z 2025-04-09T05:33:40

陰謀論を語らせてもらうぜ。
下の方までスクロールすると、コメント欄全体が検索結果とAIのサジェストを修正するキャンペーンみたいに見えてくるんだよね。ありきたりな業者によるレビューみたいなコメントが多すぎる。「素晴らしい製品!」とか「X、Y、Zを試したけど、これで問題解決!」とか。

abirch 2025-04-08T18:48:45

D3jsはどうなの?D3jsはローレベルだけど、AIがあれば簡単じゃん。

dleeftink 2025-04-08T19:16:34

Plotってやつならスタンドアロンだよ[0]。でも、深さと範囲で言ったらD3に敵うもんないと思うけどねー。
[0]: https://github.com/observablehq/plot

josephg 2025-04-09T00:18:33

最近書いた論文でPlot使ったんだけど、Plotだけが求めてたチャート作れたんだよねー。対数スケールを使ったグループ化された棒グラフとか。例えばこれ→https://github.com/josephg/egwalker-paper/blob/master/diagra…。echartsは試してないけど、良いなら試してみる価値あるかも。

shiandow 2025-04-09T14:42:51

matplotlibでも同じようなの作れるんじゃない?慣れてるかどうかにめっちゃ左右されるけど。

kowlo 2025-04-08T22:54:14

マジ残念だよねー。D3.jsの人気を使ってObservableを宣伝したかった以外に理由が思いつかない。

the_real_cher 2025-04-09T13:22:38

ObservableがD3を手に入れたのいつ?最後にD3見たの5年くらい前だけど、オープンソースのライブラリだと思ってたんだけどなー。

infecto 2025-04-09T23:13:01

ここ数年の話だけど、正確な時期は分かんない。たぶん重要なこと見落としてるかもだけど、Mike BostockがObservable共同設立したのが4~5年前?だから、事実上ずっと同じクルーだったんだけど、D3のドキュメントをObservableのnotebookと密接に結び付けるって決めたんだよね。

gaws 2025-04-12T15:55:34

>When did Observable get their hands on D3?”
ObservableとD3って同じ人が作ったんだよ。

jwilber 2025-04-08T19:27:32

マジで意味不明な意見だなー。D3のコードをコピペしたいだけなら、ドキュメントがObservableでホストされてるせいで問題あるかもね。でもD3のAPIとかデザインパターンはObservableと全く関係ないじゃん。PyTorchのドキュメントがmkdocsで作られてるからPyTorch使わない、みたいなもんじゃん?しかも、Observableが制限になってるとしても(そうじゃないけど)、全部オープンソースなんだから叩くのおかしくね?金払わないとドキュメント見れないわけじゃないし、Observable PlotとかObservable frameworkとか、色々vizのエコシステムに貢献してるじゃん。echartsは良いツールだよ。宣言的な構文はちょっと変だけど、コンポーネントライブラリに簡単に組み込めるし。AWS Quicksightとか、今でも多くのBIツールで使われてるらしいし。

infecto 2025-04-08T19:40:28

Observableが今のD3のエコシステムにめっちゃ影響与えてるって言うのは別に変なことじゃないと思うけど。D3のAPIが変わったって言うより、たくさんの学習リソースとかサンプルとかドキュメントがObservableのreactive notebook形式に作り直されてて、Observable使わない人にとっては間接的で分かりにくいんだよね。D3のことめっちゃ詳しい人には関係ないかもだけど、初心者にとってはちょっと嫌かも。別にいいんだけどね!コピペだけの問題じゃなくて、他の実行環境を学ぶ必要なくD3を使いたいってことなんだよね。時間とか集中力が限られてるなら当然じゃん?

abtinf 2025-04-08T20:59:54

Pre-observable時代は、d3でリアルタイム更新する複雑なやつ作ったんだよね。d3って考え抜かれてるけど複雑で大変だったけど、ドキュメントとかサンプルのおかげで理解できたし、結果は最高だったよ。でも数年後、簡単なやつ作ろうとしたらd3のバージョン上がってて、サンプルとか全部Observableになっててマジ無理。概念も忘れてるし、Observableからどうやってd3を取り出すかわからんくて諦めたわ。悲しい。

edoceo 2025-04-09T00:22:13

俺も同じで、結局Apache Echartに落ち着いた(他の人もそうみたいだけど)。

WuxiFingerHold 2025-04-09T03:02:14

俺も経験豊富なエンジニアだけど、D3を初めて触ってみた感想はマジそれ。notebooksは余計なハードルって感じ。大したことないけど、ちょっとイライラする。

jwilber 2025-04-08T21:11:44

イタリック体どんだけ使ってもいいけど、それは大胆な主張じゃないと思うし、反例も意味不明。D3は最高のドキュメントがあるライブラリの一つ。書籍もYouTubeビデオもたくさんあるし、メンテナーも頑張ってる。
>Observable Notebooksの形式でD3ドキュメントがある方が、ドキュメントがないよりマシ。
AIでObservable Notebookを普通のJavaScriptファイルに変換できるってマジ?

infecto 2025-04-08T21:22:07

長文レスありがとう。でも誤解されてる気がするから、いくつか釈明させて。ObservableはD3を学ぶ上での主要な媒体になってる。公式サンプルとかドキュメントとかObservableの環境に組み込まれてて、独自のモデルとか構文とか実行方法がある。それは些細なことじゃなくて、JavaScriptでD3を使いたい人にとってはマジで障害。
>AIで変換しろ
っていうのは解決策になってない。誰もがブラックボックスに頼りたいわけじゃない。

もっとコメントを表示(2)
boomskats 2025-04-08T23:11:57

全然関係ないけど、「理解を外注する」って表現初めて聞いた。めっちゃいい。

kowlo 2025-04-08T23:00:33

>Observable NotebookをAIに変換しろ。
D3.jsのドキュメントは昔は良かったのに、今はAIに頼らないと理解できないの?

listenallyall 2025-04-09T19:32:53

>でも、D3ドキュメントは、無料のインタラクティブなObservable Notebooks形式である方が、ドキュメントが全くないよりはマシ。
そこが核心。今のD3ドキュメントは、昔のnotebookベースじゃないD3ドキュメントよりマジで質が悪い。

jwilber 2025-04-10T17:08:22

例を挙げてくれる?俺は10年近くD3使ってるけど、ドキュメントはREADMEから静的なページに変わっただけでしょ(https://d3js.org/d3-selection/selecting)。何がそんなに悪いの?俺には同じに見えるんだけど(https://github.com/d3/d3-selection/tree/86)。bl.ocks.orgのこと言ってるなら、それはD3のドキュメントとは別。

infecto 2025-04-11T04:08:12

APIドキュメントがなくなったわけじゃなくて、初心者の学習体験が悪化したってこと。Observable優先になったせいで、新しいユーザーはD3を理解するのがマジで難しくなった。Observableとかいう新しいランタイムとかメンタルモデルに慣れないといけないから。例は増えてるけど、Observableとかのリアクティブなnotebookモデルを前提にしてる。

gaws 2025-04-12T15:57:22

好きなだけイタリック体を使えるってことね。マジでウケるんだけど。

9dev 2025-04-08T21:05:03

ああ、出た!オープンソースだから批判しちゃダメっていうやつ!
Observableはデータノートブック作りたいときには最高。でもVueアプリにD3のパイチャート入れたいときに、D3のAPI呼び出しをreactive cell valuesから解きほぐさないといけないのはマジ勘弁。見た目は普通のJavaScriptなのにそうじゃなくて、コピペしたらコンパイルエラーとかランタイムエラーになるし。
D3のリソースがD3のドキュメントとD3のデモとObservableのデモをごっちゃにしてるのが問題なんだよね。全部別々なら誰も文句言わないのに。

jwilber 2025-04-10T03:38:44

>ObservableはVueアプリにD3のパイチャート入れたいときに、D3のAPI呼び出しをreactive cell valuesから解きほぐさないといけないのはマジ勘弁”
そうそう、書いた通り。“d3のコードをコピペしたいだけなら、Observableでホストされてるドキュメントに苦労するかも”ってね。
ちゃんとAPI(selectionsとかbindingsとかupdate patterns)を学べば、どんなチャートだってレイアウトとかジェネレーターを使いこなすだけよ。
d3 pieのドキュメントはここにあるよ:https://d3js.org/d3-shape/pie
Observableなんていらないし。でも、Observableからコードをコピペしたいなら、この例が超シンプルだよ:https://observablehq.com/@d3/donut-chart/2
reactive cellなんてないし、cellの中のコードをコピペするだけ。

mkl 2025-04-08T22:39:53

Observableを攻撃するのは変じゃない?全部オープンソースで公開してるのに。
マジで?ノートブックエディタもオープンソースになったの?GitHubで見つからないんだけど。長らくプロプライエタリだったノートブックエディタが、Observableに対する不満の大きな原因なんだよね。

rorylaitila 2025-04-08T19:48:39

SQLからのアドホックなビジネスレポーティングにチャートが必要だったんだけど、EChartsは使いやすさ、使えるチャートの種類、インタラクティブ性、見た目の良さ、全部がちょうど良かったんだよね。

hajile 2025-04-08T23:36:05

VisXのコントロール性がマジで好き。

RedShift1 2025-04-08T19:09:10

Plotlyが好き。

rorylaitila 2025-04-08T19:52:20

Plotlyも検討したけど、Javaバックエンド用にJsソリューションが欲しかったから、GraalVMでSQLチャートレイヤーを実行できるようにしたかったんだ。

evaneykelen 2025-04-08T19:09:15

色々試した結果、うちのチームは去年Apache EChartsに落ち着いたんだけど、後悔してないよ。ドキュメントは最高だし、パフォーマンスも良いし、設定も色々できるのに使いやすいし、必要なチャートタイプ(棒、積み上げ棒、地図、ズーム/スクロール可能な時系列、散布図)全部サポートしてるし。

nXqd 2025-04-08T19:50:33

ag-grid chartと比べてどうなの?

evaneykelen 2025-04-08T20:23:51

有料プランのあるライブラリは評価してないよ。

aargh_aargh 2025-04-08T21:38:45

Vegaはどう?

FredPret 2025-04-08T17:44:22

line raceめっちゃクールじゃん。
https://echarts.apache.org/examples/en/editor.html?c=line-ra
スイッチを切り替えてレースをトリガーして。ちなみに、ノルウェーよくやった!

NicuCalcea 2025-04-08T20:09:23

見た目は neatだけど、誰かが言ってた Hans Rosling の例と違って、アニメーションは追加の情報がないよね。最後のフレームだけ見せる方が、もっと早く理解できるし、アクセスしやすいと思う。chartjunkの一種だね。
https://en.wikipedia.org/wiki/Chartjunk

razemio 2025-04-08T21:51:38

プレゼンターが自分が詳しいトピックで質問するみたいなもんでしょ?このアニメーションも同じ。情報を隠して読者の興味を引きつけてるんだよ。誰が一位になるか予想しちゃったし。もし最初からチャートを見せられてたら気づかなかったかも。YouTubeでこれがどれだけ効果的か分かるよ。このアニメーションだけで多くのフォロワーを集めてるチャンネルがあるんだから。

もっとコメントを表示(3)
noduerme 2025-04-09T03:28:20

完全に無関係ではないけど、昔 The D in Vegas にあった、今はLinqにある機械式の競馬ゲームも、人間の心理に似たような効果があるよね。ほとんどのスポーツイベントでのギャンブルもそう。アップダウンが多いものとか。カジノゲームを開発してた15年くらい前から考え始めたんだ。ゲームとか未来のイベントでも同じことが言える。結果が分からない時、時間っていうのは感情的なピークと谷の連続として経験されるんだ。デザインのフックとして最高だし、情報をエンコードする強力な方法だと思う。特に時間参照データがあって、他の軸とかサイズを使い果たした場合とかね。この「レース」を使うことに対する主な主張は、x軸を他のことに使って、グラフ全体を時間経過で変化させることができるってこと。

kortilla 2025-04-09T06:32:43

こういうチャンネルは、情報をより良く表示する方法だから存在するんじゃないよ。クリックベイトのためだよ。
そういうチャートは、タイトルで言うと「誰が勝つか当てられない」みたいなもん。
“X over 50 years videos” にハマって、満足感を得るために最後まで見ちゃうけど、結果を全然覚えてないんだよね。
動画形式のエンゲージメントベイトだよ。リアルタイムで更新されない限り、このWebページ上のチャートは chart junk だよ。

NiloCK 2025-04-09T01:05:45

便乗するみたいで悪いけど、人間の観察者っていう穏やかな仮定をすれば、ここにはもっと多くの情報があるって言えると思う。
アニメーション版では、人間の観察者はリアルタイムの観察者の精神状態を占めることを許されている(強制されている)。「Xが飛び出した - 長く続くかな - おー、Yが急上昇してる」っていう経験をするんだ。
この生々しい経験は重要で、すべての情報が最初に提示された場合、事後的に再現することは不可能だよ。
(編集: 観察者にもっと印象を残すという意味で「より多くの情報」)

FredPret 2025-04-08T23:44:36

  1. race animation は情報を追加しないけど、一連の瞬間を見てるっていう考えをより良く伝えてくれる。各瞬間には独自の歴史と感情的な影響があるんだ。線がレースするのを見ることで、各年でこのグラフを見てるような気分になれる。
    2. Chartjunk の wiki は Adolf Loos の「装飾は犯罪である」という考えを引用してる。でも、現代のミニマリズムは終わって、装飾の喜びを再発見する過程にあると思う。これは美的選択であり、同意しないかもしれないけどね。
    https://en.wikipedia.org/wiki/Ornament_and_Crime

bjarneh 2025-04-09T05:17:46

アニメーションは追加情報がないってことね。いや、情報を削ってるんだよ。進化に合わせて、ある期間に集中できるようにね。グラフが変化していくのを見るのは、静的なグラフを見るのとは違うから、chart junkとは言えないんじゃない?

helloplanets 2025-04-09T07:54:22

親コメントの考えだと、テーブルが常にベストな選択になるってこと? だって、アクセシビリティとか、伝えたいデータの把握が、完全にオーディエンスに依存しないって前提じゃん。もし自分が静的なチャートが好きでも、アニメーションチャートの方が、より多くの人に印象的に伝わるかもしれないし。

bjarneh 2025-04-10T06:56:07

めっちゃ同意。彼は“chart junk”って言葉を使いたくてウズウズしてたんだなー(笑)。

dijksterhuis 2025-04-08T23:22:22

もっと早く要点が伝わるかもね。でも、面白みは減るかも。これは二度と見ないグラフの例だし、情報なんてどうでもいい。ただのオモチャみたいなもんだし、“おっ、このvizualisation packageはクールじゃん”って思わせるための、ちょっとした楽しい例って感じ。
もし仕事で使うダッシュボードがこんな感じだったら、一週間でキレるわ。でもこれは仕事用じゃないし、EChartsを覚えてもらうためのデモだから、目的は達成されてる。

rrr_oh_man 2025-04-08T18:05:55

Hans Roslingに敬意を表して。
>https://www.youtube.com/watch?v=hVimVzgtD6w
”(2003)”

vecinu 2025-04-08T18:10:55

なんか変だぞ。データは“life-expectancy-table.json”なのに、タイトルはIncomeになってる。どっちが間違いなんだ?

macNchz 2025-04-08T18:20:31

ファイル名とは違って、ソースデータには国と年ごとの所得、寿命、人口が入ってるよ。
>https://echarts.apache.org/examples/data/asset/data/life-exp…

gadders 2025-04-09T11:12:23

>>ちなみに、ノルウェーよくやった!
原油価格とどれくらい相関があるんだろう?

simlevesque 2025-04-08T18:03:45

ウェブクライアント向けのチャートライブラリを探してるなら、charts.cssもおすすめだよ。マジで神。コンセプトが他のライブラリよりシンプルで、同じことができちゃう。サーバーサイドレンダリングとかhtmxとか、昔ながらの方法で使うのがめっちゃ簡単になる。

paulirish 2025-04-08T18:18:21

同じように、JSで強化された
https://pancake-charts.surge.sh/
(NYT graphics teamが開発してcovid chartsに使われたやつ)も昔から好き。

tkcranny 2025-04-08T23:55:20

なんかSvelteっぽいなーって思ったんだよね。案の定、Rich Harris本人がNYTにいた頃に作ったやつだった。
きれいなチャートだけど、もうメンテされてないみたいで残念。

infecto 2025-04-08T19:14:04

Chart cssは他のラインチャート描画ライブラリと変わんないよ。EChartsとは全然別物。

homebrewer 2025-04-08T19:05:40

>同じことができるって言ってるけど、
>EChartsとかamChartsのデモ見た?基本同じだけど有料版みたいなもんじゃん。
>https://www.amcharts.com/demos
chartscssに文句はないけど、子供のおもちゃと宇宙船くらい違う。仕事でApache Supersetみたいな分析アプリ作ってるけど、chart.cssじゃ無理だわ。

anentropic 2025-04-09T09:05:34

EChartsの方が機能が多いのは同意だけど、セマンティックなテーブルデータをチャートに変換するのはいいね!
ECharts使ってて満足だけど、データテーブルの各行にスパークライン入れたい時があって、EChartsインスタンス大量に作るのは大変だから、このライブラリは良さそう。

didip 2025-04-09T18:04:11

一番の問題は、SVGみたいにDOMでポイントを表してること。データポイントが大量にあると、このライブラリはパンクする。

miiiiiike 2025-04-08T19:40:50

これはキープだな。
アナウンス: “ECharts, a JS charts package”
予想: 1年以内にメンテされなくなる。
アナウンス: “Apache ECharts, a JS charts package”
予想: 来年もメンテされる。

記事一覧へ

海外テックの反応まとめ
著者
海外テックの反応まとめ
暇つぶしがてらに読むだけで海外のテックニュースに詳しくなれるまとめサイトです。