Yamamoto's Laboratory
基本事項
pyplot の関数
コンピューター Python ライブラリー Matplotlib 基本事項:Matplotlib.pyplot の関数

MatplotlibMatplotlib.pyplot の関数

Matplotlib の使い方の概要を示します.

目次


はじめに

matplotlib を使うためには,matplotlib.pyplot インポートします.これ (matplotlib.pyplot) はプロットを作成するための関数の集合です.その関数を使い,プロットを作成します.

プロット全体設定

matplotlib.pyplot の関数のうち,以下はプロット全体に関わるものです.

関数と引数 動作
annotate(s, xy, \*args, \*\*kwargs) 座標 xy (タプル) にテキスト S を貼り付けます.
arrow(x, y, dx, dy, \*\*kwargs) 矢印を加えます.
axes([arg]) 現在の Figure に軸を追加し,現在の軸にする.
axhline([y, xmin, xmax]) 水平線を追加する.
axhspan(ymin, ymax[, xmin, xmax]) 軸に水平スパン (長方形) を追加する.
axis(\*args, \*\*kwargs) 軸プロパティを取得または設定する便利なメソッド.
axvline([x, ymin, ymax]) 垂直線を追加する.
axvspan(xmin, xmax[, ymin, ymax]) 垂直な線 (四角形) を加えます.
box([on]) プロットの外枠の表示/非表示を設定する.
broken_barh(xranges, yrange, \*[, data]) 四角形の垂直なプロットを作成する.
cla() 現在の軸をクリアーする.
clabel(CS, \*args, \*\*kwargs) 等高線プロットの設定.
clf() 現在の図 (figure) をクリアーする.
clim([vmin, vmax]) 現在のイメージの色の上限/下限を設定する.
close([fig]) 図 (figure) のウインドウを閉じる.
colorbar([mappable, cax, ax]) プロットにカラーバー (凡例) を追加する.
connect(s, func) 文字列 s を伴ってイベントを接続する.
delaxes([ax]) 図 (figure) から軸 ax (デフォルトは現在の軸) を取り除く.
disconnect(cid) コールバック id「cid」を切断する.
draw() 現在の図 (figure) を再描画する.
eventplot(positions[, orientation, ...]) 指定された位置に同一の平行線をプロットする.
figimage(\*args, \*\*kwargs) リサンプリングされていないイメージを図 (figure) に追加する.
figlegend(\*args, \*\*kwargs) 凡例を表示する.
fignum_exists(num) 指定された ID の図が存在するかどうかを返します。
figtext(x, y, s, \*args, \*\*kwargs) 図にテキストを加える.
figure([num, figsize, dpi, facecolor, ...]) 新しい図 (figure) を作成する.
fill(\*args[, data]) 塗りつぶされた多角形を描画する.
fill_between(x, y1[, y2, where, ...]) 二つのカーブの間を塗りつぶす(水平).
fill_betweenx(y, x1[, x2, where, step, ...]) 二つのカーブの間を塗りつぶす(水平).
findobj([o, match, include_self]) アーティストオブジェクト (?) を探索する.
gca(\*\*kwargs) 指定されたキーワード引数に一致する現在の図の軸インスタンスを取得するか,作成する.
gcf() 現在の図を得る.
gci() 現在の着色可能なアーティストを取得する.
get_current_fig_manager() 現在の図の図マネージャーを返えす.
get_figlabels() 既存の図のラベルのリストを返えす.
get_fignums() 今在る図の番号のリストを返す.
get_plot_commands() 全てのプロッティングコマンドの保存されたリストを取得する.
ginput(\*args, \*\*kwargs) フィギュアと対話するためのブロック呼び出し.
grid([b, which, axis]) グリッド線を構成する.
hlines(y, xmin, xmax[, colors, linestyles, ...]) xmin から xmax までの各 y (スカラー or シーケンス) で水平線をプロットします.
imread(fname[, format]) 画像をファイルから読み込み,配列に入れます.
imsave(fname, arr, \*\*kwargs) 配列を画像ファイルとして保存します.
imshow(X[, cmap, norm, aspect, ...]) 2D の通常のラスター上のデータを表示します.
install_repl_displayhook() 制御が repl に返されたときに古い図が自動的に再描画されるように,repl ディスプレイフックをインストールする.
ioff() 対話モードをオフにする.
ion() 対話モードをオンにする.
isinteractive() 対話モードをのステータスを返す.
legend(\*args, \*\*kwargs) 軸に凡例を配置します.
margins(\*margins[, x, y, tight]) 自動スケーリングのマージンを設定または取得する.
matshow(A[, fignum]) 新しい Figure ウィンドウに配列を行列として表示する.
pause(interval) 秒単位で,ポーズ(停止)する.
pcolor(\*args[, alpha, norm, cmap, vmin, ...]) 不規則な長方形グリッドを使用して疑似カラープロットを作成する.
quiverkey(Q, X, Y, U, label, \*\*kw) 矢筒プロットにキーを追加する.
rc(group, \*\*kwargs) 現在の rc パラメータを設定する.
rc_context([rc, fname]) rc 設定を管理するためのコンテキストマネージャーを返す.
rcdefaults() Matplotlib の内部デフォルトスタイルから rc パラメータを復元する.
rgrids(\*args, \*\*kwargs) 現在の極座標プロットの放射状グリッド線を取得または設定する.
savefig(\*args, \*\*kwargs) 現在の図をファイルに保存する.
sca(ax) 現在の軸インスタンスを ax に設定する.
sci(im) 現在のイメージを設定する.
setp(obj, \*args, \*\*kwargs) アーティストオブジェクトにプロパティを設定する.
show(\*args, \*\*kw) 図を表示する.
subplot(\*args, \*\*kwargs) 現在の図にサブプロットを追加する.
subplot2grid(shape, loc[, rowspan, colspan, fig]) 通常のグリッド内の特定の場所に軸を作成する.
subplot_tool([targetfig]) 図のサブプロットツールウィンドウを起動する.
subplots([nrows, ncols, sharex, sharey, ...]) 図とサブプロットのセットを作成する.
subplots_adjust([left, bottom, right, top, ...]) サブプロットのレイアウトを調整する.
suptitle(t, \*\*kwargs) 図に中央揃えのタイトルを追加する.
switch_backend(newbackend) 開いているすべての図を閉じて,Matplotlib バックエンドを設定する.
ticklabel_format(\*[, axis, style, ...]) 線形軸にデフォルトで使用される ScalarFormatter を変更する.
tight_layout([pad, h_pad, w_pad, rect]) サブプロットパラメータを自動的に調整し、指定されたパディングを与える.
title(label[, fontdict, loc, pad]) 軸のタイトルを設定する.
tricontour(\*args, \*\*kwargs) 構造化されていない三角形のグリッドに輪郭を描く.
tricontourf(\*args, \*\*kwargs) 構造化されていない三角形のグリッドに輪郭を描く.
tripcolor(\*args[, alpha, norm, cmap, vmin, ...]) 非構造化三角グリッドの疑似カラープロットを作成する.
triplot(\*args, \*\*kwargs) 構造化されていない三角形のグリッドを線またはマーカーとして描画する.
uninstall_repl_displayhook() matplotlib ディスプレイフックをアンインストールする.
waitforbuttonpress(\*args, \*\*kwargs) 図と対話するための呼び出しをブロックする.
xkcd([scale, length, randomness]) xkcd スケッチスタイルの描画モードをオンにする.これは,この関数が呼び出された後に描画されたものにのみ影響する.

様々なプロット

matplotlib.pyplot には様々な種類のプロットを作成するための関数が用意されています.以下にしめします.

関数と引数 動作
acorr(x, \*[, data]) x の自己相関をプロットする.
angle_spectrum(x[, Fs, Fc, window, pad_to, ...]) 角度スペクトラムをプロットする.
bar(x, height[, width, bottom, align, data]) バープロット (棒グラフ) を作成する.
barbs(\*args[, data]) 天気図の風向きと強さを表すプロットの作成.
barh(y, width[, height, left, align]) 水平バープロット (棒グラフ) を作成する.
boxplot(x[, notch, sym, vert, whis, ...]) 箱ひげプロットを作成する.
cohere(x, y[, NFFT, Fs, Fc, detrend, ...]) x と y の間の干渉をプロットする.
contour(\*args[, data]) 等高線プロットを作成する.
contourf(\*args[, data]) 塗りつぶされた等高線を作成する.
csd(x, y[, NFFT, Fs, Fc, detrend, window, ...]) クロススペクトル密度をプロットする.
errorbar(x, y[, yerr, xerr, fmt, ecolor, ...]) エラーバーの付いたプロットを作成する.
hexbin(x, y[, C, gridsize, bins, xscale, ...]) 六角形のビニングプロット (六角形タイル敷き詰め) を作成する.
hist(x[, bins, range, density, weights, ...]) ヒストグラムプロットを作成する.
hist2d(x, y[, bins, range, density, ...]) 二次元ヒストグラムプロットを作成する.
magnitude_spectrum(x[, Fs, Fc, window, ...]) 強度スペクトラムのプロットを作成する.
pcolormesh(\*args[, alpha, norm, cmap, ...]) 不規則な長方形グリッドを使用して疑似カラープロットを作成する.
phase_spectrum(x[, Fs, Fc, window, pad_to, ...]) 位相スペクトラムプロットを作成する.
pie(x[, explode, labels, colors, autopct, ...]) パイチャートプロットを作成する.
plot(\*args[, scalex, scaley, data]) ラインあるいはマーカーのプロットを作成する.
plot_date(x, y[, fmt, tz, xdate, ydate, data]) 日付を含むデータをプロットする.
plotfile(fname[, cols, plotfuncs, comments, ...]) ファイル中のデータをプロットする.
polar(\*args, \*\*kwargs) 極座量プロットを作成する.
psd(x[, NFFT, Fs, Fc, detrend, window, ...]) パワースペクトル密度をプロットする.
quiver(\*args[, data]) 矢印の 2D フィールドをプロットする.
scatter(x, y[, s, c, marker, cmap, norm, ...]) マーカーサイズや色を変えた散布図を作成する.
specgram(x[, NFFT, Fs, Fc, detrend, window, ...]) スペクトログラムをプロットする.
spy(Z[, precision, marker, markersize, ...]) 2D配列のスパースパターンをプロットする.
stackplot(x, \*args[, labels, colors, ...]) 積み上げ面積プロットを描画する.
stem(\*args[, linefmt, markerfmt, basefmt, ...]) ステムプロットを作成する.
step(x, y, \*args[, where, data]) ステッププロットを作成する.
streamplot(x, y, u, v[, density, linewidth, ...]) ベクトルフローの流線を描く.
violinplot(dataset[, positions, vert, ...]) バイオリンプロットを作成する.
vlines(x, ymin, ymax[, colors, linestyles, ...]) 垂直の線をプロットする.
xcorr(x, y[, normed, detrend, usevlines, ...]) x と y の間の相互相関をプロットする.

軸関係

以下に,matplotlib.pyplot の軸の設定の関数を示します.

関数と引数 動作
autoscale([enable, axis, tight]) 軸の自動スケールの設定(切り替え).
minorticks_off() 軸から小目盛りを削除する.
minorticks_on() 軸の小目盛りを表示する.
locator_params([axis, tight]) 大目盛りのロケーターの動作を制御する.
loglog(\*args, \*\*kwargs) x軸とy軸ともに log スケールにする.
semilogx(\*args, \*\*kwargs) x軸がログスケールのプロットを作成する.
semilogy(\*args, \*\*kwargs) y軸がログスケールのプロットを作成する.
table([cellText, cellColours, cellLoc, ...]) 軸に表を追加する.
text(x, y, s[, fontdict, withdash]) 軸にテキストを追加する.
thetagrids(\*args, \*\*kwargs) 現在の極座標プロットのシータグリッド (角度方向) 線を取得または設定する.
tick_params([axis]) 目盛りや目盛りラベル,グリッド線の外観を変更する.
twinx([ax]) y軸を共有する2番目の軸を作成して返す.
twiny([ax]) y軸を共有する2番目の軸を作成して返す.
xlabel(xlabel[, fontdict, labelpad]) x軸のラベルを設定する.
xlim(\*args, \*\*kwargs) x軸の上限/下限を取得または設定する.
xscale(value, \*\*kwargs) x軸のスケールを設定する.
xticks([ticks, labels]) x軸の現在の目盛りの位置とラベルを取得または設定する.
ylabel(ylabel[, fontdict, labelpad]) y軸のラベルを設定する.
ylim(\*args, \*\*kwargs) y軸の上限/下限を取得または設定する.
yscale(value, \*\*kwargs) y軸のスケールを設定する.
yticks([ticks, labels]) y軸の現在の目盛りの位置とラベルを取得または設定する.

カラーマップ関係

色で値を表す場合は,色と値の対応はカラーマップで決まります.デフォルトのカラーマップは,

set_cmap(カラーマップ名)

とします.

図(figure)のカラーマップは,以下の関数で指定できます.引数はありません.色の変化など,カラーマップの詳細は,「Choosing Colormaps in Matplotlib — Matplotlib 3.1.0 documentation」に書かれrています.

関数 カラーマップ 色変化
spring() spring (春)
summer() summer (夏)
autumn() autumn (秋)
winter() winter (冬)
bone() bone (骨) 青みがかった白黒(レントゲン)
cool() cool (冷たい) 水色 – 紫
copper() copper (銅) 黒 – 茶
flag() flag (旗)
gray() gray (灰色) 白 – 黒)
hot() hot (熱い) 黒 – 赤 – 白)
hsv() hsv 橙 – 黄 – 緑 – 青 – 赤
inferno() inferno (地獄) 黒 – 紫 – 黄
jet() jet (ジェット)
magma() magma (マグマ)
nipy_spectral() nipy_spectral
pink() pink (ピンク)
plasma() plasma (プラズマ)
prism() prism (プリズム)
viridis() viridis

引数 (**kwargs) について

Matplotlib.pyplot のメソッドの引数に「**kwargs」というものがしばしば現れます.この kwargs は,「keyword arguments」の略語で,アスタリスクふたつ (**) はアンパック演算子(辞書の例)です.この **kwargs を使用すると,辞書型変数を使い引数の値を渡すことができます.実際のプログラムで動作を確認しましょう.

ヒストグラムプロットの例(kwargs.py)

import numpy as np
import matplotlib.pyplot as plt

fig = plt.figure()

# ----- プロットデータ作成 -----
x1 = np.linspace(-10, 10, 128)
y1 = np.sin(x1)

# ----- プロット -----
plt.rcParams["font.size"] = 18
plot_ex = fig.add_subplot(1,1,1)
plot_ex.set_title("$y=\sin(x)$")
plot_ex.set_xlabel(r"$\theta$ [deg]", fontsize=20, fontname='serif')
plot_ex.set_ylabel("Amplitude",       fontsize=20, fontname='serif')
plot_ex.tick_params(axis='both', length=10, which='major')
plot_ex.tick_params(axis='both', length=5,  which='minor')
plot_ex.set_xlim([-10, 10])
plot_ex.set_ylim([-1.2,1.2])
plot_ex.minorticks_on()
kwargs_ex = {'markeredgecolor':'black', 'markerfacecolor':'red'}
plot_ex.plot(x1, y1, marker='o', markersize=8, **kwargs_ex)

# ----- スクリーン表示 -----
fig.tight_layout()
plt.show()

# ----- pdf 作成 -----
fig.savefig('plot_ex.pdf', orientation='portrait', \
            transparent=False, bbox_inches=None, frameon=None)
fig.clf()

このプログラムの 0021 行の kwargs_es は辞書型のオプジェクトです.これを 0022 行でアンパック (**kwargs_ex) し.引数として渡しています.このアンパックで,**kwargs_ex は,「markeredgecolor='black', markerfacecolor='red'」に変換されます.通常の引数でデータを渡す動作と同じです.この辞書のアンパックを使うことで,複雑な引数をシンプルに記述することができます.使える kwargs については,matplotlib.pyplot のメソッド毎に異なるので,マニュアルを参照ください.

先のプログラムを実行すると,以下のプロットが得られます.

図1: **kwargs を使ったプロットの例

クローズ

コマンド 動作
ax.cla() 軸 (axes) をクリア
plt.clf() 図 (figure) をクリア
plt.close() プロットを表示したポップアップウィンドウをクローズ

ページ作成情報

参考資料

  1. YutaKaのPython教室Matplotlib plt.figure()を使う理由|FigureとAxesの関係を把握しよう は,Matplotlib の基本が分かり易いです.
  2. matplotlib.pyplot の関数の一覧は,「matplotlib.pyplot — Matplotlib 3.1.0 documentation」にあります.
  3. 具体例は,「matplotlibのpyplot APIをいろいろ試す - そうなんでげす」にたくさんあります.
  4. **kwargs については,「Understanding kwargs in Python」が良い資料です.

更新履歴

2016年10月17日 新規作成


no counter