2009-09-07 8 views
31

그래프에 큰 18pt 글꼴로 된 다음 작은 10pt 글꼴로 자막을 붙이고 싶습니다. matplotlib에서 어떻게 할 수 있습니까? title() 함수는 단일 fontsize 특성이있는 단일 문자열 만 사용합니다. 이것을 할 수있는 방법이 있어야합니다,하지만 어떻게?matplotlib에서 그래프에 자막을 부여합니다.

답변

10

나는 내장 거기에 아무것도 생각하지 않지만, 당신은 당신의 축보다 더 많은 공간을 떠나 figtext를 사용하여 작업을 수행 할 수 있습니다

axes([.1,.1,.8,.7]) 
figtext(.5,.9,'Foo Bar', fontsize=18, ha='center') 
figtext(.5,.85,'Lorem ipsum dolor sit amet, consectetur adipiscing elit',fontsize=10,ha='center') 

ha하는 horizontalalignment의 약자입니다.

43

자막에는 title() 함수를 사용하고 주 제목에는 suptitle()을 사용합니다 (다른 fontsize 인수를 사용할 수 있음). 희망이 도움이됩니다!

+0

적어도 표준 극좌표에서는 타이틀, suptitle 및 90도 마커가 모두 겹칩니다. 특히 더 큰 글꼴을 사용하는 경우 더욱 그렇습니다. – gbronner

13

여러 글꼴 크기와 관련된 유연성을 제공하지는 않지만 pyplot.title() 문자열에 줄 바꿈 문자를 추가하면 간단한 해결책이 될 수 있습니다.

plt.title('Really Important Plot\nThis is why it is important') 
+1

대부분의 경우 제목과 부제간에 약간의 문체 차이가 필요합니다. 그렇지 않으면 두 줄에 걸쳐 서투른 제목처럼 보입니다. – Annan

4

TeX! 이 작품 :

title(r"""\Huge{Big title !} \newline \tiny{Small subtitle !}""") 

편집 : TeX의 처리를 사용하려면이 매개 변수하기 matplotlib하기 위해 "usetex = TRUE"줄을 추가해야합니다 : 당신은 또한에 작업 TeX의 분포를 필요로 추측

fig_size = [12.,7.5] 
params = {'axes.labelsize': 8, 
     'text.fontsize': 6, 
     'legend.fontsize': 7, 
     'xtick.labelsize': 6, 
     'ytick.labelsize': 6, 
     'text.usetex': True,  # <-- There 
     'figure.figsize': fig_size, 
     } 
rcParams.update(params) 

당신의 컴퓨터. 모든 세부 사항은이 페이지에서 제공됩니다 :

http://matplotlib.org/users/usetex.html

+0

은 재미 있지만, matplotlib에 대해 tex 모드를 활성화하기위한 추가 플래그를 설정 했습니까? 예를 들어 1.4.1을 기본 설정으로 사용하면 작동하지 않습니다. 제목에 r "$ expr $"을 사용하여 수학을 플로팅하면됩니다. – marscher

+0

여기에서 같은 문제가 – dranxo

12

이 플로리스 반 Vugt의 답변을 구현하는 팬더 코드 예제 (10 진수 (20), 2010)이다. 그는 :

> 자막에는 title() 함수를 사용하고 주 제목에는 suptitle()을 사용합니다 (다른 fontsize 인수를 사용할 수 있음). 희망이 도움이됩니다!

import pandas as pd 
import matplotlib.pyplot as plt 

d = {'series a' : pd.Series([1., 2., 3.], index=['a', 'b', 'c']), 
     'series b' : pd.Series([1., 2., 3., 4.], index=['a', 'b', 'c', 'd'])} 
df = pd.DataFrame(d) 

title_string = "This is the title" 
subtitle_string = "This is the subtitle" 

plt.figure() 
df.plot(kind='bar') 
plt.suptitle(title_string, y=1.05, fontsize=18) 
plt.title(subtitle_string, fontsize=10) 

참고 : I에 유래하는 새로운이기 때문에 나는 그 대답에 대해 언급 할 수 없었다.

+0

두 개의 하위 그림이 있다면? 'subtitle_string = ('상단 패널 : 최대, 평균, 최소, 밑면 패널 : 발자국 % 및 중요 셀 % ')'을 호출 한 다음'plt.suptitle (title_string, y = 0.99, fontsize = 17)' 두 개의 서브 플로트가있는 차트에서 첫 번째 서브 플롯 대신 두 번째 서브 플롯 위에 자막이 인쇄되고 전설이 인쇄 된 것을 볼 수 없습니다. – FaCoffee

관련 문제