Matplotlib 환경에서 Seaborn을 사용하면 X축의 정수(int) 값을 datetime(날짜·시간) 형식으로 변환하여 플롯할 수 있습니다. 특히 밀리초(millisecond) 단위의 타임스탬프를 사람이 읽기 쉬운 날짜 문자열로 바꿀 때 유용합니다. 아래 단계를 따라 해 보세요.
구현 단계
그림(figure) 크기를 설정하고, 서브플롯 사이와 주변의 여백(padding)을 조정합니다.
세 개의 열(column)을 가진 2차원 데이터프레임 df를 생성합니다.
X축에 정수 값인 dob(밀리초 단위 타임스탬프)을 두고 countplot을 그립니다.
X축 눈금 레이블을 정수에서 datetime 형식의 문자열로 변환하여 설정합니다.
plt.show() 메서드를 사용해 그림을 화면에 표시합니다.
예제 코드
import seaborn as sns
from matplotlib import pyplot as plt
import pandas as pd
import numpy as np
# 그림 크기 설정
plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True
# 3개의 열을 가진 데이터프레임 생성
df = pd.DataFrame([
[23, 'James', 1259969793926],
[39, 'Jimmy', 1259969793927],
[56, 'Jack', 1259969793929],
[60, 'Tom', 1259969793928],
[80, 'Tim', 1259969793939]
], columns=['marks', 'names', 'dob'])
# df로 카운트플롯(countplot) 생성
ax = sns.countplot(x="dob", data=df)
# X축 눈금 값을 밀리초 단위 timestamp에서 datetime 문자열로 변환
ax.set_xticklabels(
[
pd.to_datetime(tm, unit='ms').strftime('%Y-%m-%d %H:%M:%S')
for tm in ax.get_xticks()
], rotation=45)
# 그래프 표시
plt.show()코드 설명
pd.to_datetime(tm, unit='ms'): 밀리초 단위의 정수 타임스탬프를 pandas의 datetime 객체로 변환합니다.
.strftime('%Y-%m-%d %H:%M:%S'): datetime 객체를 '연도-월-일 시:분:초' 형식의 문자열로 포맷팅합니다.
rotation=45: 긴 날짜 레이블이 겹치지 않도록 X축 레이블을 45도 회전시킵니다.
실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

참고 사항
최신 버전의 Matplotlib에서는 set_xticklabels()를 먼저 호출하면 경고(warning)가 발생할 수 있습니다. 이 경우 ax.set_xticks(ax.get_xticks())를 먼저 호출한 뒤 레이블을 설정하거나, matplotlib.ticker.FixedLocator를 활용하면 경고 없이 동일한 결과를 얻을 수 있습니다.