Pythonには、多彩なデータ可視化ライブラリが存在します。
用途や目的に応じて適切なライブラリを使い分けることで、分析の質や説得力を大きく高めることが可能です。
本記事では、主要な描画ライブラリの特徴・使いどころ・コード例を中心に、網羅的かつ実践的に解説します。
目次
Pythonの主要描画ライブラリ7選
Matplotlib
概要
Pythonにおける可視化の基本ライブラリ。
長年使われており、学術・ビジネス分野問わず広く利用されています。
細かいレイアウト調整やカスタマイズ性に優れます。
特徴
- 基本的な2Dグラフ(線・棒・円・ヒストグラムなど)に対応
- 複雑なサブプロット配置、グリッド、凡例、フォント調整も可能
pyplot
方式とオブジェクト指向(OOP)方式の2通りの記述方法
サンプルコード(OOP方式推奨)
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.plot([1, 2, 3], [4, 6, 2])
ax.set_title("Line Chart")
ax.set_xlabel("X Axis")
ax.set_ylabel("Y Axis")
plt.show()
Seaborn
概要
Matplotlibをベースにした高水準ライブラリ。
統計的なグラフを簡単かつ美しく描画できます。
Pandasとの相性が非常に良く、データ分析者に人気。
特徴
- ヒートマップ、バイオリンプロット、ペアプロットなど統計的可視化に最適
sns.objects
という新しい記述方式がv0.12から導入(宣言的スタイル)
サンプルコード(クラシックスタイル)
import seaborn as sns
df = sns.load_dataset("iris")
sns.pairplot(df, hue="species")
Plotly
概要
インタラクティブなグラフ描画が可能なライブラリ。
ブラウザ上でズーム・ホバーなどの操作ができる。
Dashと連携すれば本格的なWebアプリも構築可能。
特徴
- 2D/3Dグラフ、地図(Mapbox)などに対応
- Webダッシュボード向けの第一選択肢
- JavaScriptベースだがPython APIあり
サンプルコード
import plotly.express as px
df = px.data.iris()
fig = px.scatter(df, x="sepal_width", y="sepal_length", color="species")
fig.show()
Bokeh
概要
Plotlyと並ぶインタラクティブ可視化ライブラリ。
Jupyterノートブックとの統合やリアルタイムグラフに強く、HTML/JSで直接出力されます。
特徴
- イベント対応のインタラクション(クリック・ズーム等)
- Dashより軽量で、Flaskなどとの統合も容易
サンプルコード
from bokeh.plotting import figure, show
from bokeh.io import output_notebook
output_notebook()
p = figure(title="Line Example")
p.line([1, 2, 3], [4, 5, 6])
show(p)
Altair
概要
宣言的な記述スタイル(declarative grammar)を採用し、簡潔なコードで高度な可視化を可能にします。
Vega-Liteを基盤としており、直感的で読みやすい。
特徴
- 自動軸調整・色分け・インタラクションが一行で可能
- データは5,000行制限あり(解除には設定変更が必要)
サンプルコード
import altair as alt
from vega_datasets import data
cars = data.cars()
chart = alt.Chart(cars).mark_circle().encode(
x='Horsepower',
y='Miles_per_Gallon',
color='Origin'
)
chart.show()
Pandas .plot()
概要
PandasのDataFrameオブジェクトに標準で備わっているプロット機能。
内部的にはMatplotlibを利用しており、簡易的な描画に最適。
特徴
- 学習コストゼロで使える
- Matplotlibをバックエンドに使っているため、細かい調整も可能
サンプルコード
import pandas as pd
df = pd.DataFrame({
'Month': ['Jan', 'Feb', 'Mar'],
'Sales': [100, 200, 300]
})
df.plot(x='Month', y='Sales', kind='bar')
Holoviews / Pygal / Mayavi(補足)
ライブラリ | 特徴 |
---|---|
Holoviews | BokehやMatplotlibと連携し、少ないコードでインタラクティブグラフを生成可能 |
Pygal | SVG出力に強く、軽量グラフ作成に最適 |
Mayavi | 科学技術計算用の3D可視化に特化(NumPyと好相性) |
使用目的別のおすすめライブラリ
使用目的・職種 | 推奨ライブラリ |
---|---|
基本的なグラフ描画 | Matplotlib、Pandas |
統計的データ可視化 | Seaborn |
Webダッシュボード開発 | Plotly(+Dash)、Bokeh |
モダンで直感的なグラフを描きたい | Altair |
地理情報のマッピング | Plotly、Folium(補足) |
科学的な3Dグラフ | Mayavi、Plotly(3D対応) |
導入方法(インストール)
pip install matplotlib seaborn plotly bokeh altair pandas
Seabornの最新版(0.12以降)やAltairの制限解除には、公式ドキュメントの確認をおすすめします。
まとめと学習のステップアップ

描画ライブラリは目的によって選び方が大きく変わります。
以下のような流れで学ぶのが効果的です。
- 基本を押さえる:
Matplotlib
とPandas.plot()
で基礎固め - 統計に強くなる:
Seaborn
でデータ分析力を磨く - インタラクティブ性を学ぶ:
Plotly
やBokeh
に挑戦 - 宣言的可視化を習得:
Altair
で次世代型ビジュアライゼーションを体験
以上、Pythonの描画ライブラリについてでした。
最後までお読みいただき、ありがとうございました。