>  기사  >  백엔드 개발  >  연도와 월만 표시하도록 matplotlib에서 날짜/시간 축의 형식을 어떻게 지정합니까?

연도와 월만 표시하도록 matplotlib에서 날짜/시간 축의 형식을 어떻게 지정합니까?

DDD
DDD원래의
2024-10-27 18:46:30121검색

How can I format a datetime axis in matplotlib to show only year and month?

날짜/시간 축 형식 조정

시각화하려는 날짜/시간 인덱스가 있는 시리즈가 있는 시나리오에서 다음과 같은 상황이 발생할 수 있습니다. 그래프는 "yyyy-mm" 또는 "2016 March"와 같은 간단한 형식을 선호함에도 불구하고 시간, 분, 초를 포함한 타임스탬프를 표시합니다.

이 문제를 해결하고 원하는 형식을 얻으려면 다음 기능을 활용할 수 있습니다. matplotlib에서 제공합니다. 특히 날짜/시간 축은 포맷터를 사용하여 사용자 정의할 수 있습니다. 이러한 포맷터를 사용하면 X축의 눈금 레이블을 표시하는 방법을 지정할 수 있습니다.

다음은 포맷터 사용을 보여주는 예입니다.

<code class="python">import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.dates as mdates

# Sample data with hourly timestamps
N = 30
drange = pd.date_range("2014-01", periods=N, freq="H")
np.random.seed(365)
values = {'values':np.random.randint(1,20,size=N)}
df = pd.DataFrame(values, index=drange)

# Create a plot with incorrect formatting
fig, ax = plt.subplots()
ax.plot(df.index, df.values)
ax.set_xticks(df.index)

# Use formatters to achieve the desired formatting
ax.xaxis.set_major_formatter(mdates.DateFormatter("%Y-%m"))
ax.xaxis.set_minor_formatter(mdates.DateFormatter("%Y-%m"))
plt.xticks(rotation=90)

# Display the updated plot with the desired formatting
plt.show()</code>

이 예에서는 먼저 시간별 타임스탬프가 포함된 샘플 DataFrame을 만듭니다. 그런 다음 matplotlib.dates의 DateFormatter를 사용하여 x축의 눈금 레이블이 연도와 월만 나타내는 "%Y-%m" 형식이어야 함을 지정합니다. 마지막으로 xticks를 호출하여 가독성을 높이기 위해 눈금 레이블을 회전합니다.

이 접근 방식을 구현하면 날짜/시간 축의 형식을 효과적으로 사용자 정의하여 원하는 표시 요구 사항에 맞게 조정할 수 있습니다.

위 내용은 연도와 월만 표시하도록 matplotlib에서 날짜/시간 축의 형식을 어떻게 지정합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.