# バイオリンプロット / Violin Plot

- Stable ID: urn:uiux-atlas:pattern:076
- Pattern: 76
- Category: グラフ
- Usage: 分布の形と密度を比べる
- Accessibility: 幅は密度を表すことを明示し、標本数を併記する
- Responsive: PCは比較、スマホは要約。数値表と凡例を併記。
- HTML: 076.html
- JSON: 076.json
- Interactive demo: ../index.html#pattern/76

## Implementation specification

「バイオリンプロット / Violin Plot」を実装してください。

目的：分布の形と密度を比べる。
想定場面：グラフ・分布・密度を扱う画面。

仕様：
- 幅は密度を表すことを明示し、標本数を併記する。
- PCでは比較を、スマホでは要約を優先。数値表と凡例を併記します。
- Noto Sans JP、本文16px、補足14px、見出し24pxを基本にする。
- 背景#FFFFFF、カード#FFFFFF、本文#17191E、主要操作#17191E、境界線#E8ECF3。主要ボタンの文字は白にする。
- 余白は8px単位、カード角丸12px、控えめな影に統一する。
- semantic HTMLと標準コントロールを優先し、操作名・現在状態・結果を読み上げ可能にする。
- キーボード操作、見えるフォーカス、通常テキスト4.5:1以上のコントラストを確保する。
- prefers-reduced-motionを尊重し、アニメーションを止めても内容を理解できるようにする。

受け入れ条件：
- 1440pxと390pxで表示を確認し、ページ全体に横はみ出しがない。
- 幅は密度を表すことを明示し、標本数を併記することを操作で確認する。
- 読み込み・空・成功・エラーの該当状態を用意する。
- 見た目だけのボタンを残さず、操作を実装する。
- 実装後にスクリーンショットを比較して改善し、決定した仕様をdesign.mdへ保存する。

## Synthetic sample data

```json
{
  "columns": [
    "群",
    "点数",
    "相対密度"
  ],
  "rows": [
    [
      "A",
      0,
      "4.1"
    ],
    [
      "A",
      10,
      "8.8"
    ],
    [
      "A",
      20,
      "15.4"
    ],
    [
      "A",
      30,
      "21.5"
    ],
    [
      "A",
      40,
      "24.0"
    ],
    [
      "A",
      50,
      "21.5"
    ],
    [
      "A",
      60,
      "15.4"
    ],
    [
      "A",
      70,
      "8.8"
    ],
    [
      "A",
      80,
      "4.1"
    ],
    [
      "A",
      90,
      "2.0"
    ],
    [
      "A",
      100,
      "2.0"
    ],
    [
      "B",
      0,
      "2.0"
    ],
    [
      "B",
      10,
      "4.1"
    ],
    [
      "B",
      20,
      "8.8"
    ],
    [
      "B",
      30,
      "15.4"
    ],
    [
      "B",
      40,
      "21.5"
    ],
    [
      "B",
      50,
      "24.0"
    ],
    [
      "B",
      60,
      "21.5"
    ],
    [
      "B",
      70,
      "15.4"
    ],
    [
      "B",
      80,
      "8.8"
    ],
    [
      "B",
      90,
      "4.1"
    ],
    [
      "B",
      100,
      "2.0"
    ],
    [
      "C",
      0,
      "2.0"
    ],
    [
      "C",
      10,
      "2.0"
    ],
    [
      "C",
      20,
      "4.1"
    ],
    [
      "C",
      30,
      "8.8"
    ],
    [
      "C",
      40,
      "15.4"
    ],
    [
      "C",
      50,
      "21.5"
    ],
    [
      "C",
      60,
      "24.0"
    ],
    [
      "C",
      70,
      "21.5"
    ],
    [
      "C",
      80,
      "15.4"
    ],
    [
      "C",
      90,
      "8.8"
    ],
    [
      "C",
      100,
      "4.1"
    ]
  ]
}
```
