메모
전체 예제 코드를 다운로드 하려면 여기 를 클릭 하십시오.
텍스트 속성 및 레이아웃 #
Matplotlib로 텍스트 속성 및 레이아웃 제어
matplotlib.text.Text
set_title
인스턴스에는 , set_xlabel
,
text
등에 대한 키워드 인수를 통해 구성할 수 있는 다양한 속성이 있습니다 .
재산 |
값 유형 |
---|---|
알파 |
|
배경색 |
모든 matplotlib 색상 |
비박스 |
|
클립박스 |
matplotlib.transform.Bbox 인스턴스 |
클립온 |
부울 |
clip_path |
|
색깔 |
모든 matplotlib 색상 |
가족 |
[ |
글꼴 속성 |
|
수평 정렬 또는 하 |
[ |
상표 |
모든 문자열 |
줄 간격 |
|
다중 정렬 |
[ |
이름 또는 글꼴 이름 |
문자열 예: [ |
이쑤시개 |
[없음|float|bool|호출 가능] |
위치 |
(엑스, 와이) |
회전 |
[ 각도(도) | |
크기 또는 글꼴 크기 |
[ 포인트 크기 | 상대 크기, 예: |
스타일 또는 글꼴 스타일 |
[ |
텍스트 |
문자열 또는 '%s' 변환으로 인쇄 가능한 모든 것 |
변환 |
|
변종 |
[ |
수직 정렬 또는 VA |
[ |
보이는 |
부울 |
굵기 또는 글꼴 두께 |
[ |
엑스 |
|
와이 |
|
조더 |
어떤 숫자 |
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 |
용법 |
---|---|
|
글꼴 목록(사용자 컴퓨터에 설치됨) 및/또는 . |
|
기본 스타일은 ex |
|
기본 변형, ex |
|
기본 늘이기, ex |
|
기본 무게. 문자열 또는 정수 |
|
포인트 단위의 기본 글꼴 크기. 상대 글꼴 크기( |
Matplotlib는 사용자의 컴퓨터에 설치된 글꼴군(예: Helvetica, Times 등)을 사용할 수 있습니다. 글꼴군은 ( )와 같은 일반 계열 별칭으로 지정할 수도 있습니다 .{'cursive', 'fantasy', 'monospace',
'sans', 'sans serif', 'sans-serif', 'serif'}
메모
사용 가능한 글꼴의 전체 목록에 액세스하려면:
matplotlib.font_manager.get_font_names()
일반 패밀리 별칭과 실제 글꼴 패밀리( 기본 rcParams 에 언급됨 ) 간의 매핑은 다음 rcParams에 의해 제어됩니다.
CSS 기반 일반 계열 별칭 |
매핑이 있는 rcParam |
---|---|
|
|
|
|
|
|
|
|
|
|
일반 제품군 이름이 에 나타나면 '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
중국어를 지원하는 모든 글꼴을 나열합니다.