Program Tip

Python에서 TeX를 사용하여 matplotlib 레이블에 개행 문자를 넣습니까?

programtip 2020. 12. 7. 20:33
반응형

Python에서 TeX를 사용하여 matplotlib 레이블에 개행 문자를 넣습니까?


matplotlib에서 플롯의 레이블 (예 : xlabel 또는 ylabel)에 줄 바꿈을 추가하려면 어떻게해야합니까? 예를 들면

plt.bar([1, 2], [4, 5])
plt.xlabel("My x label")
plt.ylabel(r"My long label with $\Sigma_{C}$ math \n continues here") 

이상적으로는 y 레이블도 중앙에 배치하고 싶습니다. 이를 수행하는 방법이 있습니까? 레이블에는 TeX ( '$'로 묶임)와 개행 문자가 모두 있어야합니다.


귀하의 예는 정확히 어떻게 수행되는지 \n입니다.. r 접두사를 제거해야하므로 파이썬이 원시 문자열로 처리하지 않습니다.


LaTeX 명령 과 줄 바꿈 의 자동 "이스케이프"라는 두 가지 장점을 모두 활용할 수 있습니다 .

plt.ylabel(r"My long label with unescaped {\LaTeX} $\Sigma_{C}$ math"
           "\n"  # Newline: the backslash is interpreted as usual
           r"continues here with $\pi$")

(세 줄을 사용하는 대신 단일 공백으로 문자열을 분리하는 것이 또 다른 옵션입니다).

실제로 Python은 서로 뒤 따르는 문자열 리터럴을 자동으로 연결하며 원시 문자열 ( r"…")과 문자열을 문자 보간 ( "\n") 혼합 할 수 있습니다 .


plt.bar([1, 2], [4, 5])
plt.xlabel("My x label")
plt.ylabel(r"My long label with $\Sigma_{C}$ math" + "\n" + "continues here")

원시 문자열 형식이 아닌 개행 문자로 문자열을 연결하십시오.


다음 matplotlib python 스크립트는 새 줄로 텍스트를 만듭니다.

ax.text(10, 70, 'shock size \n $n-n_{fd}$')

다음은 새 줄이 없습니다. 텍스트 앞의 r에 주목하십시오.

ax.text(10, 70, r'shock size \n $n-n_{fd}$')

참고 URL : https://stackoverflow.com/questions/2660319/putting-newline-in-matplotlib-label-with-tex-in-python

반응형