
2026/06/19 18:08
plotnine
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
Summary: Plotnine は、Python 向けのデータ可視化ライブラリであり、R の ggplot2 の「グラフィックの文法」を Python に持ち込みつつ、慣れ親しみの深い構文を提供します。
from plotnine import * と ggplot を用いることで、1 つの行でアド・ホックなプロットを作成でき、データのグループ化に基づいて自動的に適切なデフォルト値——凡例、ラベル、刻み、カラーパレットなど——が適用されます。このワークフローは、要素を論理的にレイヤー積み上げることで刊用レベルの可視化を構築する様子を示しています;データとマッピングは各レイヤーで継承されたり変更されたりします。facet_wrap を通じた宣言的サブセットによって、手作業のループなしにマルチパネルレイアウトが可能となり、タイトル(labs(title=...))、軸座標(coord_fixed(xlim=..., ylim=...))、そして全体のスタイリングなど、あらゆる側面が geom_* および scale_* 関数の特定のパラメータを通じてオーバーライドされます。テーマは個人や組織のブランドに合わせてカスタマイズ可能であり、例として theme_tufte に theme() の調整を加えることができます。本チュートリアルではアンソームの四重集を用いて、単純なグラフィックから完全にカスタマイズされたグラフィックへと段階的に発展する様子を解説し、インストール手順については今後のセクションで取り扱います。このアプローチにより、レポート全体での視覚的な一貫性を保つとともに、標準的なレポートタスクを効率化します。本文
ピートノインのためのグラフ法則:Anscombe 四重奏で実践する可視化ワークフロー
Plotnine は、「グラフの法則(Grammar of Graphics)」に基づいた Python データ可視化パッケージです。R の ggplot2 と構文が類似しており、統一的な体系でグラフを作成できます。 本稿では、記述統計量には差がないが分布が異なる「Anscombe 四重奏」を用い、Plotnine の機能を段階的に探索します。
クイックスタート:アドホックなプロット
まず、たった一行のコードで基本的な散布図を作成できます。
from plotnine import * from plotnine.data import anscombe_quartet ggplot(anscombe_quartet, aes(x="x", y="y")) + geom_point()
- データセットには
とx
の 2 つの連続変数が含まれます。y - 現状の問題点:4 つの異なるデータセットを区別する方法がないため、プロットの意味は限定的です。
センスブルデフォルト(適切な既定値)
Plotnine はデータを基に自動的に適切な要素を追加します。
- 自動凡例生成:各点を所属するデータセットごとに着色し、自動的に凡例を作成します。
- 自動色選択:配色も自動的に決定されます。
- ※後述するように、すべての設定はカスタマイズ可能です。現状は乱雑なため、以下で改善します。
データサブセットによるファセット化
for ループを書かずに、複数の変数(パネル)に分けて可視化できます。
ggplot(anscombe_quartet, aes(x="x", y="y")) + geom_point() + facet_wrap("dataset")
- 成果:4 つのデータセットを横並びで表示でき、比較が可能になります。
- 課題:各パネルで色の使い方が重複しており、図面が冗長になっています。これを簡略化します。
可視化には「層」がある
Plotnine の最大の特徴は、レイヤー(層)単位でのカスタマイズです。一度設定したマッピングは継承されますが、各層ごとに詳細を変更可能です。
- 散布図層 (
):点の描画設定geom_point - 傾向線層 (
):回帰直線の追加設定geom_smooth
これらを組み合わせることで、Anscombe が示した「異なる分布でも記述統計量が等しい」という特徴を明確に裏付けるプロットを作成できます。
任意の既定値を上書き:出版向けのカスタマイズ
凡例、ラベル、区切り目、座標範囲など、あらゆる要素を手動で調整可能です。
( ggplot(anscombe_quartet, aes("x", "y")) + geom_point(color="sienna", fill="darkorange", size=3) + geom_smooth(method="lm", se=False, fullrange=True, color="steelblue", size=1) + facet_wrap("dataset") + scale_y_continuous(breaks=(4, 8, 12)) + coord_fixed(xlim=(3, 22), ylim=(2, 14)) + labs(title="Anscombe's Quartet") )
改善点のまとめ
- 視覚的強調:点の色・サイズと線の色を明確に区分しました。
- 読みやすさ:Y 軸の区切り目を統一し、座標範囲(
)を調整しました。coord_fixed - メタデータ:適切なタイトルを追加しました。
Plotnine はさらにカスタマイズ可能:テーマの変更
最後に、図全体のスタイルやレイアウトをテーマを変更することで、独自または組織のブランドに合わせて仕上げます。
( ggplot(anscombe_quartet, aes("x", "y")) + geom_point(color="sienna", fill="orange", size=3) + geom_smooth(method="lm", se=False, fullrange=True, color="steelblue", size=1) + facet_wrap("dataset") + labs(title="Anscombe's Quartet") + scale_y_continuous(breaks=(4, 8, 12)) + coord_fixed(xlim=(3, 22), ylim=(2, 14)) + theme_tufte(base_family="Futura", base_size=16) + theme( axis_line=element_line(color="#4d4d4d"), axis_ticks_major=element_line(color="#00000000"), axis_title=element_blank(), panel_spacing=0.09, ) )
高度なカスタマイズ内容
- フォントスタイル:Tufte テーマを採用し、基盤フォントを
に変更。Futura - 軸の最適化:
- 軸線の色をグレーに統一。
- メジャー目盛り線を透明化(不要なノイズを排除)。
- 軸タイトルを削除し、余白を広げます。
まとめ
Plotnine は、「一行のコードで素早い可視化」から始め、段階的に詳細を調整する拡張性のあるアプローチを採用しています。
- 探索的データ分析:この程度のカスタマイズで十分です。
- 出版・レポート用途:上記のような詳細なレイヤー別制御とテーマ設定が必須となります。
ご自身のデータを用いて同様のワークフローを試してみませんか? Plotnine のインストール方法について詳しく知りたい場合は、次章をご確認ください。