ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
matplotlib(マットプロットリブ)は、Pythonでグラフや図を描画するための代表的な可視化ライブラリです。折れ線・棒・散布・ヒストグラム・円など多彩なグラフを少ないコードで作成でき、データ分析や機械学習の現場で広く利用されています。本記事では、インストールから基本的な描画、グラフの種類、ラベルや凡例の付け方、画像保存、pandasやNumPyとの連携、そして日本語表示の落とし穴までをまとめて解説します。
| この記事の要点 |
|---|
|
matplotlibとは
matplotlibは、Pythonでグラフや図を描画するためのオープンソースの可視化ライブラリです。数値データを折れ線グラフや棒グラフなどの図として視覚化することで、データの傾向や分布を直感的に把握しやすくなります。
多くの場合、グラフ描画用のモジュールである matplotlib.pyplot を plt という別名でインポートして利用します。pyplot はMATLABに似た操作感で手軽にグラフを描けるよう設計されており、Pythonの可視化を学ぶ最初の一歩として広く使われています。
また、データ分析でよく使われるNumPyやpandasと組み合わせやすいことも特長です。これらのライブラリで処理したデータをそのままmatplotlibに渡してグラフ化する、という流れが一般的です。
インストールとインポート
matplotlibは標準ライブラリではないため、利用前にインストールが必要です。多くの環境ではパッケージ管理ツールの pip でインストールできます。
pip install matplotlib |
インストール後、Pythonコード内では次のようにインポートして使うのが一般的です。as plt と別名を付けることで、以降は plt. という短い記述で各機能を呼び出せます。
import matplotlib.pyplot as plt |
Anaconda などのディストリビューションには、matplotlibが最初から含まれている場合もあります。その場合は改めてインストールせずにインポートするだけで利用できます。
基本的なグラフ描画
matplotlibの最も基本的な使い方は、plt.plot() でグラフのデータを設定し、plt.show() で画面に表示するという流れです。次は、数値データの折れ線グラフを描く最小限のコード例です。
|
import matplotlib.pyplot as plt # グラフにするデータ # データの設定(折れ線グラフ) # グラフの表示 |
このコードを実行すると、x軸の値に対応するy軸の値が折れ線として描画されたウィンドウが表示されます。NumPyを使ってデータを生成し、凡例(ラベル)を付けた場合は次のような描画になります。
|
import matplotlib.pyplot as plt # データの作成 # データの設定 # 凡例の表示 # グラフの表示 |
上記コードの実行結果は、次のようなサインカーブの折れ線グラフになります。

主なグラフの種類
matplotlibでは、用途に応じてさまざまな種類のグラフを描画できます。グラフの種類は、plt.plot() の部分を別の関数に変えることで切り替えられます。代表的なものを次の表にまとめます。
| グラフの種類 | 関数 | 主な用途 |
|---|---|---|
| 折れ線グラフ | plt.plot() | 時間や順序に沿った値の変化を表す |
| 棒グラフ | plt.bar() | カテゴリごとの量を比較する |
| 散布図 | plt.scatter() | 2つの値の相関や分布を見る |
| ヒストグラム | plt.hist() | データの度数分布を確認する |
| 円グラフ | plt.pie() | 全体に占める割合を表す |
たとえば棒グラフを描くには、次のように plt.bar() を使います。横方向の棒グラフにしたい場合は plt.barh() を用います。
|
import matplotlib.pyplot as plt labels = ["A", "B", "C"] plt.bar(labels, values) |
ラベル・タイトル・凡例の設定
グラフに軸ラベルやタイトル、凡例を付けると、何を表したグラフなのかが分かりやすくなります。よく使う設定用の関数は次のとおりです。
| 関数 | 役割 |
|---|---|
plt.xlabel() | x軸(横軸)のラベルを設定する |
plt.ylabel() | y軸(縦軸)のラベルを設定する |
plt.title() | グラフのタイトルを設定する |
plt.legend() | 凡例を表示する(plot時のlabel指定が必要) |
これらを組み合わせると、次のように説明の付いたグラフを描けます。legend() は、plot() などで label を指定したうえで呼び出すと、その内容が凡例として表示されます。
|
import matplotlib.pyplot as plt x = [1, 2, 3, 4, 5] plt.plot(x, y, label="data") plt.xlabel("x axis") plt.show() |
グラフを画像として保存する
作成したグラフを画面に表示するだけでなく、画像ファイルとして保存することもできます。保存には plt.savefig() を使い、引数にファイル名を渡します。拡張子によってPNGやPDFなど出力形式が決まります。
|
plt.plot(x, y) # 画像ファイルとして保存 |
注意点として、savefig() は show() を呼び出すより前に実行する必要があります。show() の後ではグラフの内容がクリアされ、空の画像が保存される場合があるためです。
pandasやNumPyとの連携
matplotlibは、数値計算ライブラリのNumPyや、表形式データを扱うpandasと組み合わせて使われることが多くあります。NumPyの配列をそのまま plt.plot() に渡したり、pandasの DataFrame や Series のデータを描画したりできます。
pandas自体も内部でmatplotlibを利用した描画機能を備えており、DataFrame に対して .plot() メソッドを呼ぶと簡単にグラフを作成できます。次は、pandasで作ったデータをグラフ化する例です。
|
import matplotlib.pyplot as plt df = pd.DataFrame({"value": [3, 6, 2, 8, 5]}) # DataFrameから直接グラフを描画 |
よくある落とし穴
matplotlibを使い始めたときに遭遇しやすいつまずきポイントを、原因と対処の観点でまとめます。
| 症状 | 主な原因と対処 |
|---|---|
| 日本語が豆腐(□)になる | 標準フォントが日本語に対応していないことが原因。日本語対応フォントを指定するか、日本語フォント設定を行うライブラリを併用する。 |
| グラフが表示されない | plt.show() の呼び出し忘れが多い。最後に show() を実行する。 |
| 実行環境によって挙動が違う | 描画を担うバックエンドが環境ごとに異なるため。ノートブックでは表示用の設定が必要な場合がある。 |
特に日本語表示の文字化けはよく起こります。日本語対応フォントを指定する基本的な方法は次のとおりです(フォント名は環境にインストールされているものに合わせて指定します)。
|
import matplotlib.pyplot as plt # 日本語対応フォントを指定(例) plt.title("日本語のタイトル") |
よくある質問(FAQ)
Q. matplotlibとpyplotは違うものですか。
matplotlibはライブラリ全体の名前で、pyplot はその中に含まれるグラフ描画用のモジュールです。手軽にグラフを描く目的では、通常 import matplotlib.pyplot as plt として pyplot を使います。
Q. グラフが画面に出ないのはなぜですか。
最後に plt.show() を呼び出していないことが原因として多く見られます。また、実行環境(ターミナル、ノートブックなど)によって表示方法が異なるため、利用する環境に合った設定が必要になる場合もあります。
Q. 日本語のラベルが文字化けします。どうすればよいですか。
標準のフォントが日本語に対応していないことが原因です。日本語対応フォントを指定するか、日本語表示を補助するライブラリを併用することで解消できます。利用環境にインストール済みのフォントを確認して指定するとよいでしょう。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
- pandas
- matplotlib
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?