0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Qiitaでフローチャート with mermaid

参照元

この記事で例に挙げているのは 主にタテのフローチャート

はじめに 〜記事構成〜

大まかに2部構成、そのなかにコード例と出力例(順序はちがっても)

コード例と表示のセット

  • 基本の構成
    • コード例: コード部(Markdownのコードブロック)
    • 出力例: Qiitaでの表示

のセットで書いてます。

その後、どんなのが生成できるか具体的にイメージできるものとして、

作成例「🌀○○図」
「🌀○○図」、「🌀○□図」、「🌀□△図」など具体例(とコード)が続く。

⚠︎作成例の 「🌀○○図」、「🌀○□図」、「🌀□△図」などは、 参照元などのからコピペしたものだったと思います

フロー図の 矢印 ↓→ 向き

flowchart TB …上から下 flowchart DTでも ※タテのフローチャート
flowchart BT … 下から上
flowchart LR … 左から右
flowchart RL … 右から左

✴️ コード例と表示のセット

コード例:

```mermaid
flowchart TB //「flowchart xx」の「xx」の部分によってフロー図の向き
    A[起床] --> B[顔を洗う] -->
    C{眠い?} -- 眠くない --> D[朝食を食べる]
    C{眠い?} -- 眠い --> E[二度寝する] -- 起きる --> C{眠い?}
    D[朝食を食べる] --> 
    F[歯を磨く] -->
    G((やっぱり寝る))
```

出力結果:

線・矢印の種類

各ノード間の線種(矢印の)

```mermaid
flowchart TB 
    A[ノード1] --> B[ノード2] --> C[ノード3]
               ↑
               ここの「-->」を編集する。
```

A-->B 実線 矢印
A==>B 太線 矢印
A-.->B 点線 矢印
A---B 実線
A===B 太線
A--oB 丸矢印
A--xB ✖︎バツ矢印
A<-->B 双方向矢印
A~~~B 不可視のリンク ※ノードの位置関係を揃えたいけど,線は引きたくないというとき
A-->|text|B テキスト挿入

コード例@線・矢印

```mermaid
flowchart TB
    A[Start] --> B[Stop]
    C[Start] ==> D[Stop]
    E[Start] -.-> F[Stop]
    G[Start] --- H[Stop]
    I[Start] === J[Stop]
```
```mermaid
flowchart TB
    K[Start] --o L[Stop]
    M[Start] --x N[Stop]
    O[Start] <--> P[Stop]

    id1[node1]
    id2[node2]
    id3[node3]
    id1 ~~~ id2
    id1 --> id3

    A-->|text|B
``` 

表示@線・矢印

コード例@リンク連鎖

```mermaid
flowchart
    id1[node1]
    id2[node2]
    id3[node3]
    id1 --> id2 --> id3

    A[node1]
    B[node2]
    C[node3]
    A --> B & C

    D[node1]
    E[node2]
    F[node3]
    G[node4]
    D & E --> F & G 
```

表示@リンク連鎖

ノードの形

長方形か菱形かなど

```mermaid
flowchart TB 
    A[ノード1] --> B[ノード2] --> C[ノード3]
     ↑      ↑
     ここの[ ]を編集する。
```

A[] 長方形
A{} ひし形
A() 長方形(角が丸い)
A([]) 楕円
A(())

A[/\] 台形
A[()] 円柱みたいなの

コード例@ノードの形

```mermaid
flowchart 
A[長方形]
B{ひし形}
C(角が丸い長方形)
D([楕円])
```
```mermaid
flowchart
E((円))
F[/台形\]
G[(円柱)]
``` 

出力例@ノードの形

✴️ 作成例「🌀○○図」

🌀フローチャート図

処理の流れ、条件分岐、手順やプロセスなどを表現する時

例1:ロジック

コードこう書く

```mermaid
graph TB
  Start([Start])-->B{if a > b}
  B-->|True| End
  B-->|False| IFS[/while\]
  IFS-->C[a++]
  C-->IFB[\  /]
  IFB-->End([End])
```

例2:システム構成

コードこう書く

```mermaid
flowchart TB
  User-->LB[Load Balancer]
  LB--> Web1[Web Server] & Web2[Web Server]
  Web1 & Web2 --> DB[(Database)]
```

🌀シーケンス図

フローチャートよりも時間軸に沿ったものの表現に適。

例:「User」、「Server」、「Database」それぞれの要素の相互作用を時間軸に沿って表現

コードこう書く

```mermaid
sequenceDiagram
  actor U as User
  participant S as Server
  participant DB
  U->>+S: Request
  S->>DB: SQL
  DB-->>S: データ
  S-->>-U: HTML
  U->>+S: Request
  S-->>-U: JavaScript / CSS
```

🌀状態遷移図

フロー図に似てる、順序ではなく状態の遷移を表現したいとき

例:それぞれの状態と、その遷移に関しての説明を表現

コードこう書く

```mermaid
stateDiagram-v2
  [*] --> 実行可能状態
  実行可能状態 --> 実行状態: ディスパッチ
  実行状態 --> 実行可能状態: プリエンプション
  実行状態 --> 待機状態: I/O
  待機状態 --> 実行可能状態: I/O完了
```

🌀クラス図 〜略〜

〜略〜

🌀ER図 〜略〜

エンティティの関係を表現
〜略〜

🌀円グラフ

コードこう書く

```mermaid
pie title 社内で使っているエディタ
  "VSCode" : 30
  "Vim" : 6
  "Emacs" : 2
```

🌀ガントチャート

プロジェクトの計画など。プロジェクトに紐づくそれぞれのタスクのスケジュールなどを表現。

コードこう書く

```mermaid
gantt
  dateFormat  YYYY-MM-DD
  title       XXXプロジェクト 計画
  excludes    weekends

  section リリース
  開発期間        :done, 2022-04-01, 2022-04-08
  アルファリリース期間 :active, 5d
  ベータリリース期間  :5d
  正式リリース      :milestone, 0d

  section 開発
  機能開発      :crit, done, 2022-04-01, 3d
  デバッグ      :crit, done, 2d
  アナウンス     :crit, done, 1d
  ベータ機能開発 :crit, active, 4d
  バグ修正      :4d
  最終検証      :1d
```

⚠︎作成例の 「🌀○○図」、「🌀○□図」、「🌀□△図」などは、 参照元などのからコピペしたものだったと思います

■END

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?