YutaKaのPython教室

Python の文法やライブラリ、API、環境構築について画像・動画・ソースコード付きで徹底解説!

Matplotlib plt.textよく使うもの徹底解説|テキスト表示をマスター!

pythonのプロット作成ライブラリといえば、Matplotlibが有名ですね。

今回は…

  • グラフ内にテキストを表示するにはどうすればいいの?
  • テキストの書式設定方法を知りたい!

という方向けに、

  • plt.text()を使用して、グラフ内にテキストを表示する方法
  • テキストの書式設定の方法

を解説していきます。

plt.text()の書式設定は、グラフのタイトルや軸ラベルの書式にも応用できるので、見やすいグラフを作るのにとても役立ちます!

 

【PR】自走できるAI人材とは?まずは無料オンライン説明会へ

plt.text()の基本的な使い方

plt.text()を使用すると、グラフ内にテキストを表示することができます。

簡単な例として、適当なプロットに座標を表示してみると、こんなかんじです。

テキストのサイズ変更と色付けを応用するとこんなこともできます。

グラフ内のテキストは、グラフで伝えたいことを強調するために重要な要素です。

自由にテキストを追加できるようにplt.text()の基本操作を覚えてしまいましょう!

plt.text()でテキストを表示するには?

plt.text()では、引数で座標とテキストの内容を指定します。

  • plt.text(x, y, "s" )

各引数の内容は次の通りです。

引数名 内容
x テキストのx座標 数値型
y テキストのy座標 数値型
s 表示するテキスト "文字列"

xとyは個別に渡す点に注意しましょう。次のようにタプルで渡すとエラーになります。

  • NG例:plt.text( (x, y), "s" )

xとyは個別に渡すように気を付けましょう。

plt.text()使用例

簡単な例として、次のプロットに座標データを表示する例を紹介します。

# モジュールの読み込み
%matplotlib inline
import matplotlib.pyplot as plt
 
# 表示する変数
x, y = 1, 2
 
# プロット表示
plt.figure(figsize = (3,3)) # 図のサイズ指定
plt.plot(x, y, "ro")        # プロット作成
plt.axis([0,3,0,3])         # 軸の最大、最小値指定
 
plt.show()

  • 【参考】plt.plot()の詳しい使い方はこちらで紹介しています。
≫【完全保存版】Matplotlib plt.plot徹底解説 | 基本操作を総まとめ!
≫【完全保存版】Matplotlib plt.plot徹底解説 | 基本操作を総まとめ!
Matplotlibのplt.plotを使用したグラフを作成、グラフの見た目変更、タイトルや軸の設定など基本事項について徹底解説!!この記事を読めば、plt.plotで手軽に手早く簡単に、キレイなグラフ作成可能に!?
www.yutaka-note.com/entry/matplotlib_pyplot
 

plt.text()を使用して、テキストを表示します。

plt.figure(figsize = (3,3)) # 図のサイズ指定
plt.plot(x, y, "ro")        # プロット作成
plt.axis([0,3,0,3])         # 軸の最大、最小値指定
 
# テキスト表示
plt.text(x, y, "(x,y)=({},{})".format(x,y) )
 
plt.show()

ここでは、f-stringで、s = f"(x,y)=({x},{y})"を渡して、表示しています。

【PR】Matplotlib関連の書籍はこちら

plt.text()の書式設定

plt.text()では、キーワード引数で書式を設定できます。

次のように、座標、表示テキストに追加して、キーワード引数で書式を設定します。

plt.text(x, y, "str", key1 = val1, key2 = val2 ) 

現実問題として、設定可能な内容がたくさんありすぎて必要なものを探すのが大変です。

そこで、使用頻度が高そうな書式設定方法をまとめました。

設定内容 引数名 略称 設定値の例
文字の大きさ fontsize size 数値(pt)で指定 or
'small', 'large'など名前で指定
文字の色 color c 色の名前など
ex) 'gray', 'red', 'blue'
水平方向の文字位置 horizontalalignment ha 座標を基準にした文字の位置
'center', 'right', 'left'
垂直方向の文字位置 verticalalignment va 座標を基準にした文字の位置
'center', 'top', 'bottom'など
太字に変更 fontweight weight 'bold':太字
斜体に変更 fontstyle style 'italic':斜体

サイズの変更:size または fontsize

サイズ変更は、次の2つの方法があります。

  • デフォルトのフォントとの相対的な大きさを指定|'small', 'large'など
  • 文字のサイズを数値ptで指定

それぞれ具体例を紹介していきます。

デフォルトサイズとの相対的な大きさを指定

デフォルトサイズとの相対的な大きさで指定するには

  • size = '大きさを表す文字列'

とします。

次の指定値が使用可能です。

指定値 大きさ デフォルトに対する倍率
'xx-small' 極極小 0.579
'x-small' 極小 0.694
'small' 0.833
'medium' デフォルト 1.000
'large' 1.2
'x-large' 極大 1.44
'xx-large' 極々大 1.728

例として、次のコードで各サイズを並べて表示してみましょう。

size_list = ['xx-small', 'x-small', 'small', 'medium', 'large', 'x-large', 'xx-large'] 
for i, size in enumerate(size_list):
    plt.text(i, i, size, size =size  ) #  fontsize or size = size
plt.show()

数値ptで指定

文字のサイズを具体的な数値ptで指定するには

  • size = 数値

とします。

例として、次のコードで各サイズを並べて表示してみましょう。

size_list = [ 5, 10, 15, 20, 25, 30] 
for i, size in enumerate(size_list):
    plt.text(i, i, f"{size} pt", size =size  ) #  fontsize or size = size

色の変更:color または c

テキストの色を変更するには

  • color = '色名など'

を指定します。

'色名など'には、

  • Matplotlibで準備されている色名
  • 色の短縮名
  • RGB値など

が指定できます。

ここでは、色の短縮名を与える方法を紹介します。

短縮名 色名 色名(日本語)
b blue
g green
r red
c cyan シアン
y yellow 黄色
k black
w white

次のサンプルコードで各色を並べて表示してみましょう。

color_dict = {'b': 'blue', 'g': 'green', 'r': 'red', 'c': 'cyan',
              'm': 'magenta', 'y': 'yellow', 'k': 'black', 'w': 'white'}
    plt.text(i, i, color_dict[color], c = color, size = "xx-large"  ) # color or c = color

  • 【参考】色の設定について詳細は次の記事で紹介しています。
≫Matplotlib color 色の指定 | 一文字指定からカラーマップの使い方まで徹底解説
≫Matplotlib color 色の指定 | 一文字指定からカラーマップの使い方まで徹底解説
伝わるグラフを作るためのポイントはなんでしょうか?いかに視覚的にわかりやすいか、これが大切です。それには重要な要素に色をつけて、視覚的にうったえることが超大切!この記事では、matplotlibでの色の指定方法について、基本から応用まで徹底解説!
www.yutaka-note.com/entry/matplotlib_color
 

水平方向の文字位置:horizontalalignment または ha

指定した座標に対する水平方向の配置位置を指定できます。

ワードやエクセルの中央揃え、右揃え、左揃えと同じようなイメージです

次の指定値が使用可能です。

指定値 設定内容
'center', 文字の中央を座標(x,y)にあわせる
'right' 文字の右側を座標(x,y)にあわせる
'left' 文字の左側を座標(x,y)にあわせる

例として、次のコードで各位置を並べて表示してみます。

ha_list = ['center', 'right', 'left'] 
for i, ha in enumerate(ha_list):
    plt.plot(1.5, i, "o") 
    plt.text(1.5, i, ha, ha = ha , size = "xx-large"  ) #  horizontalalignment or ha

(比較のために、x座標を揃えて、縦線を引いています)

垂直方向の文字位置:verticalalignment または va

指定した座標に対する垂直方向の配置位置を指定できます。

指定値 設定内容
'center' 文字の中央を座標(x,y)にあわせる
'top' 文字の上端を座標(x,y)にあわせる
'bottom' 文字の下端を座標(x,y)にあわせる
'baseline' 文字のベースラインを座標(x,y)にあわせる
'center_baseline' 文字の中央やや上を座標(x,y)にあわせる

例として、次のコードで各位置を並べて表示してみます。

_CT垂直方向の文字位置調整例">

va_list = ['center', 'top', 'bottom', 'baseline', 'center_baseline'] 
for i, va in enumerate(va_list):
    plt.plot(i, 1.5, "o")
    plt.text(i, 1.5, va, va = va , size = "xx-large"  ) #  verticalalignment or va

(比較のために、y座標を揃えて、横線を引いています)

太字に設定:fontweight または weight

fontweightを指定すると、テキストを太字に設定できます。

指定値 設定内容
'normal' 太字にしない(デフォルト)
'bold' 太字に設定する

例として、次のコードで太字を表示してみます。

weight_list = ['normal', 'bold'] 
for i, weight in enumerate(weight_list):
    plt.text(i, i, weight, weight = weight , size = "xx-large"  ) #  fontweight or weight

斜体に設定:fontstyle または style

fontstyleを指定すると、テキストを斜体に設定できます。

指定値 設定内容
'normal' 斜体にしない(デフォルト)
'italic' 斜体に設定する

例として、次のコードで斜体を表示してみます。

style_list = ['normal', 'italic'] 
for i, style in enumerate(style_list):
    plt.text(i, i, style, style = style , size = "xx-large"  ) #  fontstyle or style

plt.text()の使い方まとめ

plt.text()を使用すると、グラフ内にテキストを表示することができます。

  • plt.text(x, y, "s" )でテキストを表示
  • キーワード引数でテキストの見た目の詳細設定が可能

ということがポイントです。

plt.text()の書式設定は、グラフのタイトルや軸ラベルの書式にも応用できるので、見やすいグラフを作るのにとても役立ちます!

もっとMatplotlibを自由自在に操作したい!という方へのおススメコンテンツはこちらです!

≫Matplotlib inline の謎解明! |「書けと言われたので書いています」から卒業
≫Matplotlib inline の謎解明! |「書けと言われたので書いています」から卒業
Jupyter Notebookでmatplotlibを使用する場合には、インポートする前に%matplotlib inlineと記述します。なぜinlineと入力しているのでしょうか?この記事では、matplotlib inlineの謎について解説していきたいと思います!
www.yutaka-note.com/entry/matplotlib_inline
 
≫Matplotlib plt.textよく使うもの徹底解説|テキスト表示をマスター!
≫Matplotlib plt.textよく使うもの徹底解説|テキスト表示をマスター!
グラフ内にテキストでコメントを記入することってよくありますよね?グラフにコメントがあると、グラフの大事な部分を強調して説明できます。この記事では、matplotlibでグラフ内にテキストを表示する方法、テキストの見た目の変更方法について図解・サンプルコード付きで解説しています!
www.yutaka-note.com/entry/2020/01/08/080413
 
≫Matplotlib color 色の指定 | 一文字指定からカラーマップの使い方まで徹底解説
≫Matplotlib color 色の指定 | 一文字指定からカラーマップの使い方まで徹底解説
伝わるグラフを作るためのポイントはなんでしょうか?いかに視覚的にわかりやすいか、これが大切です。それには重要な要素に色をつけて、視覚的にうったえることが超大切!この記事では、matplotlibでの色の指定方法について、基本から応用まで徹底解説!
www.yutaka-note.com/entry/matplotlib_color
 
≫Matplotlib 軸周り完璧マスターガイド | 軸・軸目盛・目盛り線の設定
≫Matplotlib 軸周り完璧マスターガイド | 軸・軸目盛・目盛り線の設定
Matplotlibで大変なのが軸周りの設定!グラフの「この要素」を変更するには、「どのメソッド」を使えばいいのかわからない…。という方のために、Matplotlibの軸・目盛り・目盛り線の設定について総まとめしました!これで軸周りの設定がだいぶ楽になります。軸周り完ぺきマスターガイド!
www.yutaka-note.com/entry/matplotlib_axis
 
≫Matplotlib 棒グラフを徹底解説|複数系列・積み上げ棒グラフ全てOK
≫Matplotlib 棒グラフを徹底解説|複数系列・積み上げ棒グラフ全てOK
Matplotlibで棒グラフを作成する方法がよくわからない…。 棒グラフで悩むなら、MatplotlibあきらめてExcel使おうかな…。 と思ったことはありませんか?そんな方のために、Matplotlibの棒グラフ作成方法を徹底的に解説しました!複数系列?積み上げ棒グラフ?全部大丈夫!
www.yutaka-note.com/entry/matplotlib_bar
 
≫Matplotlib 散布図を徹底解説!|基本設定からバブルチャートまで
≫Matplotlib 散布図を徹底解説!|基本設定からバブルチャートまで
Matplotlibで散布図を作成する方法がよくわからない…。散布図って何のためにあるの?全部、plt.plotでグラフ作ればよくない?という方のために、「Matplotlibの散布図の作成方法、散布図を応用したデータの可視化例」についてまとめしました!
www.yutaka-note.com/entry/matplotlib_scatter
 
≫Matplotlib 円グラフ作成方法|Excel風グラフ、ドーナツグラフも解説
≫Matplotlib 円グラフ作成方法|Excel風グラフ、ドーナツグラフも解説
Matplotlibで円グラフを作成する方法がよくわからない…。何を設定すれば、自分の描きたい円グラフになるのかわからない!という方のために、「Matplotlibの円グラフ作成方法」、「Excel風の見た目に設定する方法」、「グラフやラベルの設定方法」についてまとめしました!これで自由に円グラフを作成できます!
www.yutaka-note.com/entry/matplotlib_pie
 
≫Matplotlib subplotの使い方徹底図解!|一つの図に複数グラフを描く
≫Matplotlib subplotの使い方徹底図解!|一つの図に複数グラフを描く
Matplotlibで一つの図の中に複数のグラフを並べるにはどうすればいいの?subplotでグラフを並べられるらしいけど、使い方がよくわからない!という方のために、「plt.subplot()の基本的な使い方」を画像付きで解説していきます!plt.subplot()でプロットをキレイに配置して、見やすく人に伝わるグラフを目指しましょう!
www.yutaka-note.com/entry/2020/01/02/232925
 
≫【完全保存版】Matplotlib plt.plot徹底解説 | 基本操作を総まとめ!
≫【完全保存版】Matplotlib plt.plot徹底解説 | 基本操作を総まとめ!
Matplotlibのplt.plotを使用したグラフを作成、グラフの見た目変更、タイトルや軸の設定など基本事項について徹底解説!!この記事を読めば、plt.plotで手軽に手早く簡単に、キレイなグラフ作成可能に!?
www.yutaka-note.com/entry/matplotlib_pyplot
 
≫Matplotlib アニメーション作成入門編 |ArtistAnimation徹底解説!
≫Matplotlib アニメーション作成入門編 |ArtistAnimation徹底解説!
Matplotlibではアニメーションも作成できますが、初めての人には少し複雑です…。「 Matplotlibでアニメーションを描きたいけど、何から始めればいいの?」という方のために、 Matplotlibでアニメーションを超簡単に作成・保存する方法、アニメーション作成用の超基本テンプレを画像・サンプルコード付きで紹介していきます!
www.yutaka-note.com/entry/matplotlib_artist_anim
 
≫Matplotlib FuncAnimation徹底解説|更新用関数はこう作ればいい!
≫Matplotlib FuncAnimation徹底解説|更新用関数はこう作ればいい!
Matplotlibではアニメーションも作成できますが、初めての人には少し複雑です…。「Matplotlibでアニメーションを描きたいけど、よくわからない!」、「FuncAnimationで更新用関数作るって何?意味不明!!」という方のために、FuncAnimationでアニメーションを作成する超基本、更新用関数の作成方法、重要メソッドを画像・サンプルコード付きで紹介していきます!
www.yutaka-note.com/entry/matplotlib_func_anim
 
Matplotlib plt.figure()を使う理由|FigureとAxesの関係を把握しよう
Matplotlib plt.figure()を使う理由|FigureとAxesの関係を把握しよう
Matplotlibでグラフを描くとき「FigureとかAxesとかMatplotlib独特の単語が多くてよくわからない」、「Figureを作った後、結局どうやってプロットすればいいの?」という方のために、FigureとAxesの関係性を図解!FigureにAxesを追加する方法厳選3パターンを解説します!覚えておきたいFigureの設定・操作(サイズ変更、レイアウト調整など)も画像・サンプルコード付きで解説!
www.yutaka-note.com/entry/matplotlib_figure
 

Twitter@YutaKaでは、ほぼ毎日pythonに関する情報を発信しています。

気楽にツイートしているので、気軽にフォローしてください!