인프런 커뮤니티 질문&답변
seaborn으로 그린 그래프의 x축 소수점 없애는 법
해결된 질문
작성
·
3.4K
답변 1
0
박조은
지식공유자
안녕하세요.
seaborn 에서 수치데이터를 위한 그래프를 그릴때는 추정값을 표시를 해요.
그래서 정수가 아닌 실수로 표기가 되는데요.
lineplot 같은 경우에는 pointplot으로 그리면 정수가 실수로 표현되지 않아요.
그래서 정수가 실수로 표현되는 것은 그 그래프가 수치 데이터를 표현하기 위해서인데요.
연도나 월 같은 경우에도 숫자이기 때문에 lineplot으로 그래프를 그리면 이런 현상이 나타나요.
그런데 pointplot으로 그리면 정수로 표시가 되는데 pointplot을 범주형 데이터를 위한 그래프이기 때문이에요.
질문은 boxplot으로 주셨는데 boxplot 도 수치데이터를 표현하기 위해 사용해요.
그래서 실수로 표기가 되는데요.
seaborn은 matplotlib을 기반으로 만들어졌어요.
그래서 표현되는 수치를 변경하기 위해서는 matplotlib을 함께 사용해 주셔야 해요.
boxplot은 아니지만 아래의 예제를 참고해 보세요.

# 연도에 소숫점이 생기지 않게 표시하고자 한다면 ax.xaxis.set_major_locator를 사용해서 integer로 설정합니다.
from matplotlib.ticker import MaxNLocator
ax = plt.figure().gca()
df_last.groupby(["연도"])["평당분양가격"].mean().plot()
ax.xaxis.set_major_locator(MaxNLocator(integer=True))






안내해 주신 방법으로 위의 예제는 연도가 정수 처리가 되네요. 하지만 처음에 문의드렸던 boxplot에서는 여전히 실수로 표기가 됩니다,,,
아래처럼 2가지로 시도해 봤는데요, 혹시 제가 잘못 이해한 부분이 있을까요?
<시도 1>
from matplotlib.ticker import MaxNLocator
ax = plt.figure().gca()
sns.boxplot(data=df, x='과실율[%]', y='통원일수')
ax.xaxis.set_major_locator(MaxNLocator(integer=True))
<시도2>
from matplotlib.ticker import MaxNLocator
ax = sns.boxplot(data=df, x='과실율[%]', y='통원일수')
ax.xaxis.set_major_locator(MaxNLocator(integer=True))