“ Seaborn is a Python data visualization library based on matplotlib. It provides a high-level interface for drawing attractive and informative statistical graphics. For a brief introduction to the ideas behind the library, you can read the introductory notes or the paper. Visit the installation page to see how you can download the package and get started with it. You can browse the example gallery to see some of the things that you can do with seaborn, and then check out the tutorials or API reference to find out how.
Seabornの公式ドキュメントからの引用
かみ砕いて説明すると、
Seaborn は、Pythonでグラフを描くためのライブラリで、
内部では matplotlib を使いながら、きれいで分かりやすいデータ可視化を少ないコードで作れるのが特徴です。
「とりあえず数字をグラフにしてみたい」「見た目もそこそこ整えたい」
そんなときに、Seaborn はとても便利です。
ということで、この記事では、公式ドキュメントを参考にサンプルデータを活用しながらグラフをPythonで描画してみます。実際のビジネスシーンでの活用方法は次の記事で紹介します。
ライブラリのインストール
まずとにかくSeabornをインストールしましょう。
pip install seaborn
これでSeabornと以下の必須の依存ライブラリがインストールされます。
- numpy
- pandas
- matplotlib
サンプルデータでチャートを描画してみる
以下はまず深く考えずに
まず、以下のコードでSeabornを読み込みます。
import seaborn as sns
※snsは公式ドキュメントでも使われる略称です。
そして以下のコードでデフォルトテーマを設定します。
sns.set_theme()
set_theme()はseabornに定義されている関数です。スタイルを明示的に指定することも可能ですが、チュートリアルでは上記のコードでSeaborn推奨のスタイルに合わせます。
次に、サンプルデータを読み込ませます。
tips = sns.load_dataset("tips")
チュートリアルではこの次の行でグラフを描画しますが、いったんサンプルデータの中身を以下のコードで確認してみます。
tips.head(20)
tipsの先頭20行を表示させます。

このデータフレームには、
- total_bill(合計金額)
- tip(チップ)
- smoker(喫煙者か)
- time(昼/夜)
- size(人数)
の要素を含みます。
では、さっそくseabornでデータを可視化します。以下のコード
sns.relplot(
data=tips,
x="total_bill", y="tip", col="time",
hue="smoker", style="smoker", size="size",
)
で実行します。いかに詳細を解説します。
replotは散布図と折れ線グラフを統一的に扱えるSeabornの関数です。
引数を確認します。
data=tips
で使用するデータを指定し、
x="total_bill", y="tip"
でx軸:支払額、y軸:チップ額を指定します。
col="time"
でtime (Lunch / Dinner)ごとに、横に並んだ複数のグラフを作ります。
hue="smoker"
で喫煙者の色分け。また、
style="smoker"
で点の形でも分けています。白黒印刷や色覚配慮、視認性向上のために二重で表現するよくある手法です。チュートリアルなので、やや冗長に見えます。(が、気にせず進めます)
size="size"
で、size(人数)を点の大きさで表現します。
なんと、この数行のコードが以下のチャートをものの数秒で描画します。

公式ドキュメントに沿ったチュートリアルなので、「あくまで1枚のコードでどれだけ多次元の情報を載せられるか」に注力した表になっています。
強い相関は見られませんが、パッとみて
- ディナーのほうが多い
- ランチの金額が少ない
- チップと合計金額の正の相関がある
ということは読み取れます。
Seabornでの可視化は、個人的には「複雑な分析」に向いていると考えています。
多変量(3つ以上の変数)を1つの表に描画するのはExcelなどでは非常に手間がかかるうえ不向きです。よってより分析を要する可視化に向いていると思います。
可視化のツールの1つとして、一度試してみてはいかがでしょうか。