Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Seaborn·Matplotlib에서 catplot(factorplot) Y축의 과학적 표기법 제거하기

Seaborn이나 Matplotlib으로 그래프를 그릴 때 Y축 값이 커지면 축 레이블이 1e6 같은 과학적 표기법(지수 표기)으로 자동 변환되는 경우가 있습니다. 이를 일반적인 숫자 형태로 표시하고 싶다면 ticklabel_format() 메서드에 style="plain" 옵션을 지정하면 됩니다.

해결 단계

  • 그림(figure) 크기를 설정하고 서브플롯 주변의 여백(padding)을 조정합니다.
  • col1, col2 두 개의 열을 가진 데이터프레임을 생성합니다.
  • 참고로 예전 Seaborn의 factorplot() 함수는 현재 catplot()으로 이름이 변경되었으므로, 최신 버전에서는 catplot()을 사용해야 합니다.
  • 과학적 표기법을 억제하려면 ticklabel_format() 메서드에 style="plain"과 대상 축을 의미하는 axis="y"를 함께 지정합니다.
  • show() 메서드를 호출하여 그래프를 화면에 출력합니다.

예제 코드

from matplotlib import pyplot as plt
import pandas as pd
import seaborn as sns

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

df = pd.DataFrame({"col1": [1, 3, 5, 7, 1], "col2": [1, 5, 7, 9, 1]})

sns.catplot(y="col1", x="col2", kind='bar', data=df, label="Total", height=3.5)

plt.ticklabel_format(style='plain', axis='y')

plt.show()

코드 설명

rcParams를 통해 그림 크기와 자동 레이아웃을 설정한 뒤, pandas로 간단한 데이터프레임을 만듭니다. 이어서 sns.catplot()으로 막대(bar) 그래프를 그리고, 핵심인 plt.ticklabel_format(style='plain', axis='y') 한 줄이 Y축의 지수 표기를 일반 숫자 표기로 바꿔 줍니다. 만약 X축에도 동일하게 적용하고 싶다면 axis='both'로 변경하면 됩니다.

실행 결과

Seaborn·Matplotlib에서 catplot(factorplot) Y축의 과학적 표기법 제거하기