当サイトを閲覧いただきありがとうございます。本記事ではAI時代にコード管理できる図形全26種を横断的に比較し、用途別のおすすめをまとめます。
26種類もあると「で、結局どれを使えばいいの?」となると思いますが、この記事を見ればどのツールを選べばよいか分かります。各カテゴリの表の下に詳細記事へのリンクを用意しているので、気になるカテゴリがあればそちらも参照してください。
「図をコードで管理する」とは?
PowerPointやdraw.ioで図を作ると、保存されるのはPNGやJPEGなどのバイナリファイル(人間が読めないデータ形式)です。バイナリファイルには厄介な問題があります:
- 中身が読めない — ファイルを開いても0と1の羅列で、どこに何が書いてあるか分からない
- 変更箇所が分からない — Gitで差分を見ても「何かが変わった」としか分からず、「矢印を1本追加した」のか「全体を作り直した」のか区別できない
- AIが生成できない — AIはテキストを出力するツールなので、バイナリ画像を直接生成することはできない
- 元のツールがないと編集できない — PowerPointで作った図はPowerPointがないと修正できない
一方、本記事で紹介するツールは図をテキスト(コード)で定義します。たとえばMermaidなら、以下のようなテキストを書くだけでフローチャートが自動生成されます:
flowchart TD
A[開始] --> B{条件}
B -->|Yes| C[処理A]
B -->|No| D[処理B]
テキストなのでAIに「この図を描いて」と頼める、Gitで「どの矢印が追加されたか」まで差分が見える、テキストエディタさえあれば誰でも編集できるのが大きなメリットです。
AIコーディングアシスタントが当たり前になった今、コード管理できる図形の活躍の幅は今後さらに広がっていくと確信しています。ドキュメントの更新に連動して図が自動更新される、PRのレビューで図の差分も確認できる、設計の議論をAIに投げるとそのまま仕様書用の図が返ってくる — こうしたワークフローが既に実現可能で、ツールとAIの進化によって今後さらに自然になっていくでしょう。
全26種早見表
以下は8カテゴリ・全26種を一覧にした早見表です。各カテゴリの表で気になるものがあれば、表の下にあるリンクからサンプルコード付きの詳細記事に飛べます。
汎用ダイアグラム(6種)
フローチャート、シーケンス図、ER図など、開発中によく使う図を描くための定番です。
| 名称 | 記法 | AI相性 | 描ける図の種類 | 特長 |
|---|---|---|---|---|
| Mermaid | 独自記法 | ◎ | フローチャート、シーケンス図、ER図、ガントチャート、状態遷移図など10種以上 | GitHubに直接埋め込める。迷ったらこれ |
| D2 | 独自記法 | ◎ | フローチャート、アーキテクチャ図、ネストした構造図 | 図の中に図を入れるネスト構文が得意。見た目がモダン |
| PlantUML | 独自記法 | ○ | UMLのほぼ全種類(クラス図、シーケンス図、ユースケース図など) | UML規格に準拠した正式なドキュメント向き |
| Graphviz | DOT言語 | ○ | ノードとエッジで構成されるグラフ(依存関係、データ構造) | 大量のノードを自動できれいに配置してくれる |
| Nomnoml | 独自記法 | ○ | クラス図、オブジェクト図 | ブラウザだけで使えて手軽。サッと描きたいときに便利 |
| Pikchr | PIC言語ベース | △ | 座標指定のカスタム図 | 位置を1ピクセル単位で制御できる。上級者向け |
サンプルコード・メリット・デメリットの詳細はこちら:
ベクター・直接描画(3種)
座標やスタイルを自分で指定して図形を描く手法です。表現力は高いですが記述量が多いため、汎用系の補完として使うのが現実的です。
| 名称 | 記法 | AI相性 | 描けるもの | 特長 |
|---|---|---|---|---|
| SVG | XML | ○ | どんな図形でも(アイコン、ロゴ、図解など) | 拡大しても劣化しない。他の図形生成手段の出力形式としても使われる |
| CSS Art | CSS | △ | UIパーツ、アイコン、装飾 | HTMLとCSSだけで描くので追加ソフト不要 |
| Canvas / p5.js | JavaScript | ○ | アニメーション、マウス操作に反応する図 | 動く図・触れる図を作れる |
サンプルコード・メリット・デメリットの詳細はこちら:
テキストアート系(3種)
+ - | などの文字だけで図を描くアプローチです。専用ソフト不要で始められ、AIとの相性も良好です。
| 名称 | 記法 | AI相性 | 描けるもの | 特長 |
|---|---|---|---|---|
| ASCII Art | テキスト | ◎ | 文字だけで構成された図 | 専用ソフト不要。ソースコードのコメントにも埋め込める |
| Ditaa | テキスト | ◎ | ASCIIアート → 画像(PNG)変換 | 文字の図を手書き風の画像に変換 |
| Svgbob | テキスト | ◎ | ASCIIアート → きれいなSVG変換 | Ditaaより高品質。曲線の認識にも対応 |
サンプルコード・メリット・デメリットの詳細はこちら:
設計系(3種)
特定の設計領域に特化した専用型です。汎用系とは比べものにならない表現力と生産性が出せます。
| 名称 | 記法 | AI相性 | 描ける図の種類 | 特長 |
|---|---|---|---|---|
| Structurizr DSL | 独自DSL | ◎ | システム全体の構成図(4段階のズームレベル) | 1つの定義から俯瞰図〜詳細図まで自動生成 |
| DBML | 独自記法 | ◎ | データベースのテーブル関連図(ER図) | ER図の自動生成に加え、SQLへの変換も可能 |
| Diagrams (Python) | Python | ◎ | AWS/GCP/Azureのクラウド構成図 | 公式クラウドアイコン500種以上を使った構成図 |
サンプルコード・メリット・デメリットの詳細はこちら:
ハードウェア・構文系(3種)
かなりニッチな内容です。デジタル回路のタイミング図やプロトコル仕様書に関わらない方は読み飛ばしてOKです。
| 名称 | 記法 | AI相性 | 描ける図の種類 | 特長 |
|---|---|---|---|---|
| WaveDrom | JSON | ○ | デジタル信号の波形図(タイミングチャート) | ハードウェア設計・プロトコル仕様書向け |
| Railroad Diagram | JavaScript / Python | ○ | プログラミング言語の構文図(路線図のような図) | 言語仕様やAPIの引数パターンの説明に |
| Bytefield-svg | 独自記法 | △ | 通信パケットのバイト構造図 | ネットワークプロトコルの仕様書向け |
サンプルコード・メリット・デメリットの詳細はこちら:
グラフ・チャート(4種)
棒グラフ、折れ線グラフ、円グラフなど、データを可視化するための定番です。
| 名称 | 記法 | AI相性 | 描けるグラフの種類 | 特長 |
|---|---|---|---|---|
| Vega-Lite | JSON | ◎ | 棒、折れ線、散布図、ヒートマップなど多数 | JSONで定義。AIとの相性が良い |
| Chart.js | JavaScript | ◎ | 棒、折れ線、円、レーダー、散布図など | 広く普及しており情報が豊富 |
| Recharts | JSX (React) | ○ | 棒、折れ線、円、レーダー、エリアなど | Reactアプリに自然に組み込める |
| Observable Plot | JavaScript | ○ | 棒、折れ線、散布図、密度推定など | 少ないコードで高品質。D3.js開発者が設計 |
サンプルコード・メリット・デメリットの詳細はこちら:
マインドマップ・ホワイトボード(2種)
思考整理やラフスケッチ向きです。テキストから自動生成するMarkmapと、マウスで直感的に描くExcalidrawの2種です。
| 名称 | 記法 | AI相性 | 描けるもの | 特長 |
|---|---|---|---|---|
| Markmap | Markdown | ◎ | Markdownからマインドマップ | AIの出力をそのまま可視化できる |
| Excalidraw | GUI(JSONで保存) | △ | 手書き風の自由な図 | マウスで直感的に描ける。ラフスケッチ向き |
サンプルコード・メリット・デメリットの詳細はこちら:
数学・学術(2種)
学術論文や教科書で使われる図形・数式です。
| 名称 | 記法 | AI相性 | 描けるもの | 特長 |
|---|---|---|---|---|
| TikZ/PGF | LaTeX | ◎ | 学術論文品質のあらゆる図 | LaTeX環境の世界標準。分野別の専用ライブラリが膨大 |
| KaTeX / MathJax | LaTeX | ◎ | Web上の数式 | AIが高い精度で生成できる |
サンプルコード・メリット・デメリットの詳細はこちら:
用途別おすすめ
表を見ても迷う場合は、以下を参考にしてください。
| やりたいこと | おすすめ |
|---|---|
| とりあえず図が必要 | Mermaid — GitHubに埋め込めて、AIにも生成させやすい |
| アーキテクチャ図を描きたい | D2 — ネスト構文が自然。クラウドアイコンが必要ならDiagrams(Python) |
| データベースのER図が必要 | DBML — ER図に特化。SQLへの変換もできる |
| データのグラフが必要 | Vega-Lite(AIに生成させたい場合) / Chart.js(Webアプリに組み込む場合) |
| 学術論文の図が必要 | TikZ — LaTeX環境での標準 |
| 思考を整理したい | Markmap — Markdownを書くだけでマインドマップに |
| ラフスケッチが必要 | Excalidraw — マウスで直感的に描ける |
| ソースコードのコメントに図を入れたい | ASCII Art — 専用ソフト不要、テキストエディタだけで完結 |
どこで表示するか
| 表示先 | おすすめ |
|---|---|
| GitHubのREADME | Mermaid(ネイティブ対応) |
| Webサイト・ブログ | SVG、Mermaid、KaTeX |
| 学術論文 | TikZ |
| プレゼン資料 | Excalidraw、Diagrams(Python) |
| ソースコード内 | ASCII Art |
描きたい図の種類から選ぶ
| 図の種類 | おすすめ |
|---|---|
| フローチャート | Mermaid、D2 |
| シーケンス図 | Mermaid、PlantUML |
| ER図 | DBML、Mermaid |
| クラス図 | PlantUML、Mermaid |
| アーキテクチャ図 | D2、Diagrams(Python) |
| 依存関係グラフ | Graphviz |
| データのグラフ | Vega-Lite、Chart.js |
| マインドマップ | Markmap |
| 数式 | KaTeX / MathJax |
Kroki — 複数ツールをまとめて使えるサービス
ここまで紹介した個別ツールを1つのサービスからまとめて利用したい場合に便利なのがKrokiです。
Krokiは20以上のダイアグラムツールを1つのAPI経由で利用できるレンダリングサービスです。Mermaid、PlantUML、Graphviz、D2、Svgbob、WaveDromなど、本記事で紹介したツールの多くに対応しています。
使い方はシンプルで、URLのパスにツール名を指定してコードを送信するだけです。
# Mermaidでフローチャートを生成
curl -X POST https://kroki.io/mermaid/svg \
-d 'flowchart TD
A[Start] --> B{Check}
B -->|Yes| C[Process]
B -->|No| D[End]'
# PlantUMLでシーケンス図を生成
curl -X POST https://kroki.io/plantuml/svg \
-d '@startuml
Alice -> Bob: Hello
Bob --> Alice: Hi
@enduml'
ツールのインストールが一切不要で、HTTP APIを叩くだけで図が得られます。docker run -d -p 8000:8000 yuzutech/kroki でセルフホスティングもできるので、社内環境に閉じて運用することも可能です。
外部サービスに依存するため、公式サーバーがダウンすると図の生成ができなくなる点には注意が必要です(セルフホスティングで回避可能)。
まとめ
本記事ではAI時代にコード管理できる図形全26種を、8カテゴリに分けて紹介しました。如何だったでしょうか。
正直、26種全部を覚える必要はありません。私自身も普段使っているのはせいぜい4〜5種類で、それ以外は必要になったときに引っ張り出すくらいです。大事なのは「こういうツールがある」ということを頭の片隅に入れておくことで、いざという時に「たしかあのツールが使えたはず」と思い出せれば十分です。
まずはMermaidから始めて、必要に応じてDBML、Diagrams(Python)、Vega-Lite等の専用ツールを取り入れていく、というステップで問題ありません。複数ツールを使い分けるなら、KrokiでAPIを統一するのも手です。
本記事が、図形の選定の参考になれば幸いです。
それでは次の記事も閲覧いただけると幸いです。
📚 シリーズ:AI時代のコード管理できる図形(9/9)



