.mdv と .qmd(Quarto)の詳細比較
これは 参考ページ です。.mdv と .qmd(Quarto)はどちらも Markdown ベースのデータ可視化フォーマットですが、設計思想が異なる別系統の仕組みです。quarto-plus では .qmd を常用し、.mdv は参考として扱います。
Markdownベースのデータ可視化フォーマットを、設計思想から実用性まで徹底解剖します。
1. 概要:ふたつのフォーマット
- MDV(.mdv)
- Markdown Data & Visualization の略。Markdown の厳密なスーパーセットとして、チャート・KPIカード・テーブルなどを宣言的な記法で埋め込めるレポートフォーマット。コードを書かなくてもデータ可視化が可能です。
- Quarto(.qmd)
- Posit(旧 RStudio)が開発するオープンソースの科学・技術出版システム。Python / R / Julia / Observable のコードを実行し、その結果(グラフや表)を文書に埋め込みます。再現可能なレポート作成が核心です。
どちらも「Markdown をベースにして、データやグラフを埋め込めるフォーマット」という点で共通しています。しかし、グラフをどうやって作るかという点で本質的な違いがあります。
2. 設計思想の違い
2.1 MDV:宣言的なデータ可視化
MDV の核心は「コードを書かずに、宣言的な記法だけでグラフを作る」ことです。chart type=line data=sales x=month y=revenue のように、属性を指定するだけでレンダラーが SVG グラフを生成します。
これにより、プログラミングの知識がない営業担当者やマネージャーでも、Markdown の知識だけで見栄えの良いレポートを作成できます。出力は自己完結型の HTML(インライン SVG、JS ランタイム不要)または PDF です。
2.2 Quarto:実行可能なレポート
Quarto の核心は「コードとその結果を一体化した再現可能な文書」です。Python や R のコードブロックを文書内に書き、レンダリング時に実際に実行してグラフや表を生成します。
これにより、データが更新されても同じコードを再実行すれば、常に最新の結果が反映された文書が得られます。データサイエンスや研究分野で「再現性」が重視される理由がここにあります。
本質的な違いを一言で: MDV は「グラフを宣言する」、Quarto は「コードを実行してグラフを生成する」。前者は手軽さを、後者は再現性と柔軟性を追求しています。
3. 構文の比較
3.1 最小構成の文書
.mdv(宣言的):
---
title: Q1 Report
theme: report
---
# Q1 Results
```stat
label, value, delta
Revenue, $2.06M, +14%
chart type=bar x, y A, 10 B, 20
**`.qmd`(コード実行)** — 以下は表示用の例です(実際には実行されません):
```markdown
---
title: "Q1 Report"
format: html
---
# Q1 Results
```python
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.bar(["A", "B"], [10, 20])
plt.show()
### 3.2 データの参照方法
**`.mdv`(データ参照は front-matter で):**
```mdv
---
data:
sales: ./data/sales.csv
---
```chart type=line
data=sales
x=month
y=revenue
**`.qmd`(データ参照はコードで)** — 以下は表示用の例です(実際には実行されません):
```markdown
```python
import pandas as pd
sales = pd.read_csv("data/sales.csv")
import plotly.express as px
fig = px.line(sales, x="month", y="revenue")
fig.show()
```
3.3 構文の違いの要点
| 項目 | .mdv | .qmd |
|---|---|---|
| グラフの指定方法 | 属性ベース(type=line data=sales) |
コードベース(Python/R/Julia を記述) |
| コード実行 | 不要(レンダラーが解釈) | 必要(Knitr または Jupyter エンジン) |
| YAML front-matter | タイトル・テーマ・データ参照 | タイトル・出力形式・実行オプション等 |
| コンテナ構文 | ::: callout / ::: columns |
Div 構文 ::: {.callout} |
4. 機能比較表
| 機能 | .mdv | .qmd(Quarto) |
|---|---|---|
| Markdown 互換性 | CommonMark の厳密なスーパーセット | Pandoc Markdown(拡張 Markdown) |
| グラフ生成(宣言的) | ネイティブ対応 | コードで記述が必要 |
| コード実行 | 非対応 | Python / R / Julia / Observable |
| HTML 出力 | 自己完結型(インライン SVG) | 対応 |
| PDF 出力 | 対応 | 対応(LaTeX 経由も可) |
| Word 出力 | 非対応 | 対応 |
| PowerPoint 出力 | 非対応 | 対応 |
| プレゼンテーション | 対応(スライド形式) | reveal.js / PowerPoint / Beamer |
| ダッシュボード | ネイティブ対応 | Quarto Dashboards 対応 |
| ブログ/ウェブサイト | 非対応 | 対応 |
| 書籍作成 | 非対応 | 対応 |
| VS Code 拡張 | ライブプレビュー対応 | 公式拡張あり |
| RStudio 統合 | 非対応 | ネイティブ統合 |
| 数式(LaTeX) | テーマ依存 | MathJax / KaTeX 対応 |
| 相互参照(図表番号) | 非対応 | 対応 |
| 引用・参考文献 | 非対応 | Pandoc citeproc 対応 |
| 呼び出し(Callout) | ::: callout |
::: callout-* |
| タブセット | 非対応 | 対応 |
| 目次(TOC) | ::: toc |
YAML オプションで設定 |
5. エコシステムとツール
5.1 開発元とコミュニティ
| 項目 | .mdv | .qmd(Quarto) |
|---|---|---|
| 開発元 | 個人開発者(GitHub: drasimwagan/mdv) | Posit(旧 RStudio、商用企業) |
| GitHub Stars | 約 500(2026年時点) | 数万規模 |
| ライセンス | MIT | MIT / GPL(複数コンポーネント) |
| 主要ユーザー層 | エンジニア、マネージャー、レポート作成者 | データサイエンティスト、研究者、統計分析者 |
| 主要言語エコシステム | TypeScript / JavaScript | R, Python, Julia, JavaScript |
5.2 エディタ統合
MDV は VS Code 拡張によるサイドバイサイドのライブプレビューが主要な編集体験です。CLI ツールで HTML/PDF へのレンダリングも可能です。
Quarto は VS Code 拡張に加え、RStudio とのネイティブ統合が強力です。RStudio 上では「Source パネルで編集 → Viewer パネルでプレビュー」という統合環境が提供されています。また、JupyterLab 拡張もあります。
5.3 学習曲線
| 項目 | .mdv | .qmd(Quarto) |
|---|---|---|
| 最低限必要な知識 | Markdown のみ | Markdown + Python/R/Julia のいずれ |
| グラフを作るまでの手順 | 属性を指定するだけ | コードを書いて実行する |
| カスタマイズの自由度 | テーマ・スタイルで調整(限定的) | コードで完全に制御可能 |
| 初心者が最初のグラフを出すまで | 短い(数分) | 中程度(環境構築 + コード理解) |
6. 用途別の選び方
.mdv を選ぶ場面 - 営業レポートや月次報告書を手軽に作りたい - チームメンバーがコードを書けない - CSV データからすぐにグラフを出したい - 自己完結型の HTML/PDF を共有したい - シンプルなダッシュボードが欲しい - 「コードは見せたくない、結果だけ見せたい」
.qmd を選ぶ場面 - データ分析のプロセスを文書化したい - コードと結果をセットで残したい(再現性) - Python / R で複雑な分析をしている - 論文や技術文書を書きたい - ウェブサイトやブログも同じ体制で作りたい - 相互参照や参考文献管理が必要
6.1 具体例で比較
例1:営業チームの月次レポート — 推奨:.mdv
営業担当者は Markdown を書くだけで、CSV から KPI カードやグラフを自動生成できます。コードを書く必要がなく、学習コストが極めて低いです。
例2:機械学習の実験レポート — 推奨:.qmd
モデルの訓練コード、評価指標の計算、可視化をすべて1つの文書に統合できます。データが更新されても再実行すれば最新結果が反映されます。
例3:社内向け軽量ダッシュボード — 推奨:.mdv
宣言的な記法でレイアウトとグラフを配置でき、HTML 出力は単一ファイルなので社内サーバーに置くだけで共有できます。
例4:学術論文の草稿 — 推奨:.qmd
LaTeX 数式、図表番号の相互参照、参考文献管理(BibTeX)がすべて統合されています。PDF 出力も出版品質です。
7. まとめ
.mdv と .qmd は、どちらも「Markdown にデータ可視化を組み合わせたフォーマット」という大きな文脈で共通しています。しかし、そのアプローチは正反対に近いです。
| 比較軸 | .mdv | .qmd(Quarto) |
|---|---|---|
| 哲学 | シンプルさ・手軽さ | 再現性・柔軟性・統合性 |
| グラフの作り方 | 宣言する(属性を書く) | 実行する(コードを書く) |
| 対象ユーザー | 非エンジニアも含む広い層 | データサイエンティスト・研究者 |
| 規模 | 軽量・特化型 | 大規模・汎用型出版システム |
| 将来性 | 新興(コミュニティ形成中) | 確立済み(企業バックアップあり) |
最終的な判断基準:「コードを書く必要があるか?」が分かれ目です。コードが必要なら Quarto、不要なら MDV が自然な選択です。ただし、Quarto の方が圧倒的にエコシステムが大きいため、長期的な観点からは Quarto の学習投資の価値が高い場面も多いです。