テキストのプロパティとレイアウト#

テキストのプロパティとそのレイアウトを Matplotlib で制御します。

matplotlib.text.Textset_titleインスタンスには、set_xlabeltext、 などのキーワード引数を介して構成できるさまざまなプロパティがあります。

財産

値のタイプ

アルファ

float

背景色

任意の matplotlibの色

bbox

Rectangle'pad'ポイント単位のパッドであるprop dict plus key

クリップボックス

matplotlib.transform.Bbox インスタンス

クリップオン

ブール

クリップパス

PathインスタンスとTransformインスタンス、Patch

任意の matplotlibの色

家族

[ 'serif'| 'sans-serif'| | 'cursive'| | 'fantasy'| | 'monospace']

フォントプロパティ

FontProperties

horizo​​ntalalignment または ha

[ 'center'| 'right'| | 'left']

ラベル

任意の文字列

行間隔

float

マルチアライメント

[ 'left'| 'right'| | 'center']

名前またはフォント名

文字列 例 [ 'Sans'| | 'Courier'| | 'Helvetica'...]

ピッカー

[None|float|bool|callable]

位置

(x,y)

回転

[ 角度 (度) | 'vertical'| | 'horizontal']

サイズまたはフォントサイズ

[ ポイントのサイズ | 相対的なサイズ。例: 'smaller', 'x-large']

スタイルまたはフォントスタイル

[ 'normal'| 'italic'| | 'oblique']

文章

文字列または '%s' 変換で出力可能なもの

変身

Transformサブクラス

変異体

[ 'normal'| 'small-caps']

verticalalignment または va

[ 'center'| 'top'| | 'bottom'| | 'baseline']

見える

ブール

太さまたはフォントの太さ

[ 'normal'| 'bold'| | 'heavy'| | 'light'| | 'ultrabold'| | 'ultralight']

バツ

float

y

float

ズーダー

いずれかの番号

horizontalalignment配置引数、verticalalignment、および を使用してテキストをレイアウトできます multialignmenthorizontalalignmentテキストの x 位置引数が、テキスト境界ボックスの左側、中央、または右側を示すかどうかを制御します。verticalalignmentテキストの y 位置引数が、テキスト バウンディング ボックスの下部、中央、または上部のいずれを示すかを制御します。multialignment、改行で区切られた文字列のみの場合、さまざまな行が左、中央、または右に揃えられるかどうかを制御します。text()コマンドを使用して、さまざまな位置合わせの可能性を示す例を次に 示します。コード全体での の使用はtransform=ax.transAxes、座標が軸のバウンディング ボックスに対して相対的に指定されていることを示します。(0, 0) は軸の左下、(1, 1) は右上です。

import matplotlib.pyplot as plt
import matplotlib.patches as patches

# build a rectangle in axes coords
left, width = .25, .5
bottom, height = .25, .5
right = left + width
top = bottom + height

fig = plt.figure()
ax = fig.add_axes([0, 0, 1, 1])

# axes coordinates: (0, 0) is bottom left and (1, 1) is upper right
p = patches.Rectangle(
    (left, bottom), width, height,
    fill=False, transform=ax.transAxes, clip_on=False
    )

ax.add_patch(p)

ax.text(left, bottom, 'left top',
        horizontalalignment='left',
        verticalalignment='top',
        transform=ax.transAxes)

ax.text(left, bottom, 'left bottom',
        horizontalalignment='left',
        verticalalignment='bottom',
        transform=ax.transAxes)

ax.text(right, top, 'right bottom',
        horizontalalignment='right',
        verticalalignment='bottom',
        transform=ax.transAxes)

ax.text(right, top, 'right top',
        horizontalalignment='right',
        verticalalignment='top',
        transform=ax.transAxes)

ax.text(right, bottom, 'center top',
        horizontalalignment='center',
        verticalalignment='top',
        transform=ax.transAxes)

ax.text(left, 0.5*(bottom+top), 'right center',
        horizontalalignment='right',
        verticalalignment='center',
        rotation='vertical',
        transform=ax.transAxes)

ax.text(left, 0.5*(bottom+top), 'left center',
        horizontalalignment='left',
        verticalalignment='center',
        rotation='vertical',
        transform=ax.transAxes)

ax.text(0.5*(left+right), 0.5*(bottom+top), 'middle',
        horizontalalignment='center',
        verticalalignment='center',
        fontsize=20, color='red',
        transform=ax.transAxes)

ax.text(right, 0.5*(bottom+top), 'centered',
        horizontalalignment='center',
        verticalalignment='center',
        rotation='vertical',
        transform=ax.transAxes)

ax.text(left, top, 'rotated\nwith newlines',
        horizontalalignment='center',
        verticalalignment='center',
        rotation=45,
        transform=ax.transAxes)

ax.set_axis_off()
plt.show()
テキスト小道具

デフォルトのフォント番号

ベースのデフォルト フォントは、一連の rcParams によって制御されます。数式のフォントを設定するには、で始まる rcParams を使用しますmathtext ( mathtextを参照)。

rcParam

利用方法

'font.family'

フォント ファミリのリスト (ユーザーのマシンにインストールされている) および/または.{'cursive', 'fantasy', 'monospace', 'sans', 'sans serif', 'sans-serif', 'serif'}

'font.style'

デフォルトのスタイル ex 'normal', 'italic'.

'font.variant'

デフォルトのバリアント、ex 'normal''small-caps' (未テスト)

'font.stretch'

デフォルトのストレッチ、ex 'normal''condensed' (不完全)

'font.weight'

デフォルトの重量。文字列または整数のいずれか

'font.size'

デフォルトのフォント サイズ (ポイント単位)。相対フォント サイズ ( 'large''x-small') は、このサイズに対して計算されます。

Matplotlib は、ユーザーのコンピューターにインストールされているフォント ファミリ (Helvetica、Times など) を使用できます。フォント ファミリは、( ) のような一般的なファミリ エイリアスで指定することもできます。{'cursive', 'fantasy', 'monospace', 'sans', 'sans serif', 'sans-serif', 'serif'}

ノート

使用可能なフォントの完全なリストにアクセスするには:

matplotlib.font_manager.get_font_names()

一般的なファミリ エイリアスと実際のフォント ファミリ (デフォルトの rcParamsで説明) の間のマッピングは、次の rcParams によって制御されます。

CSS ベースのジェネリック ファミリ エイリアス

マッピング付きのrcParam

'serif'

'font.serif'

'monospace'

'font.monospace'

'fantasy'

'font.fantasy'

'cursive'

'font.cursive'

{'sans', 'sans serif', 'sans-serif'}

'font.sans-serif'

一般的なファミリ名のいずれかが に表示される場合'font.family'、そのエントリを対応する rcParam マッピングのすべてのエントリに置き換えます。例えば:

matplotlib.rcParams['font.family'] = ['Family1', 'serif', 'Family2']
matplotlib.rcParams['font.serif'] = ['SerifFamily1', 'SerifFamily2']

# This is effectively translated to:
matplotlib.rcParams['font.family'] = ['Family1', 'SerifFamily1', 'SerifFamily2', 'Family2']

非ラテン文字を含むテキスト#

v2.0 の時点で、デフォルトのフォントDejaVu には多くの西洋のアルファベットのグリフが含まれていますが、中国語、韓国語、日本語などの他のスクリプトは含まれていません。

既定のフォントを必要なコード ポイントをサポートするフォントに設定するには、フォント名を先頭に追加する'font.family'(推奨)、または目的のエイリアス リストに追加します。

# first method
matplotlib.rcParams['font.family'] = ['Source Han Sans TW', 'sans-serif']

# second method
matplotlib.rcParams['font.family'] = ['sans-serif']
matplotlib.rcParams['sans-serif'] = ['Source Han Sans TW', ...]

一般的なファミリ エイリアス リストには、Matplotlib と一緒に出荷されるフォント (つまり、100% の確率で見つかる) か、ほとんどのシステムに存在する可能性が非常に高いフォントが含まれています。

カスタム フォント ファミリを設定する際の良い方法は、最後の手段として、generic-family を font-family リストに追加することです。

.matplotlibrcファイルに設定することもできます。

font.family: Source Han Sans TW, Arial, sans-serif

アーティストごとに使用するフォントを制御するには、上記のname fontnameまたはfontproperties キーワード引数を使用します。

Linux では、fc-listはフォント名を検出する便利なツールです。例えば

$ fc-list :lang=zh family
Noto to Sans Mono CJK TC,Noto Sans Mono CJK TC Bold
Noto Sans CJK TC,Noto Sans CJK TC Medium
Noto Sans CJK TC,Noto Sans CJK TC DemiLight
Noto Sans CJK KR,Noto Sans CJK KR Black
Noto Sans CJK TC,Noto Sans CJK TC Black
Noto Sans Mono CJK TC,Noto Sans Mono CJK TC Regular
Noto Sans CJK SC,Noto Sans CJK SC Light

中国語をサポートするすべてのフォントをリストします。

Sphinx-Gallery によって生成されたギャラリー