텍스트 속성 및 레이아웃 #

Matplotlib로 텍스트 속성 및 레이아웃 제어

matplotlib.text.Textset_title인스턴스에는 , set_xlabel, text등에 대한 키워드 인수를 통해 구성할 수 있는 다양한 속성이 있습니다 .

재산

값 유형

알파

float

배경색

모든 matplotlib 색상

비박스

Rectangle'pad'점의 패드인 prop dict plus key

클립박스

matplotlib.transform.Bbox 인스턴스

클립온

부울

clip_path

Path인스턴스와 Transform인스턴스 ,Patch

색깔

모든 matplotlib 색상

가족

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

글꼴 속성

FontProperties

수평 정렬 또는 하

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

상표

모든 문자열

줄 간격

float

다중 정렬

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

이름 또는 글꼴 이름

문자열 예: [ 'Sans'| 'Courier'| 'Helvetica'...]

이쑤시개

[없음|float|bool|호출 가능]

위치

(엑스, 와이)

회전

[ 각도(도) | 'vertical'| 'horizontal']

크기 또는 글꼴 크기

[ 포인트 크기 | 상대 크기, 예: 'smaller', 'x-large']

스타일 또는 글꼴 스타일

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

텍스트

문자열 또는 '%s' 변환으로 인쇄 가능한 모든 것

변환

Transform아강

변종

[ 'normal'| 'small-caps']

수직 정렬 또는 VA

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

보이는

부울

굵기 또는 글꼴 두께

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

엑스

float

와이

float

조더

어떤 숫자

horizontalalignment정렬 인수 , verticalalignment및 를 사용하여 텍스트를 배치할 수 있습니다 multialignment. horizontalalignment텍스트의 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를 사용 하십시오( mathtextmathtext 참조 ).

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%임) 또는 대부분의 시스템에 존재할 가능성이 매우 높은 글꼴이 포함됩니다.

사용자 지정 글꼴 모음을 설정할 때 좋은 방법은 최후의 수단으로 글꼴 모음 목록에 일반 글꼴 모음을 추가하는 것입니다.

.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에서 생성한 갤러리