你也可以格式化DateTimeIndex
「手動」使用大熊貓Timestamp
對象的屬性的熊貓的x軸蜱和標籤。
我發現,不是使用matplotlib.dates
定位器,其工作的其他日期時間格式比熊貓(如果我沒有記錯的話),因此有時會表現出奇怪的行爲,如果日期沒有相應轉換容易得多。
這裏是一個通用的例子,顯示了基於Timestamp
對象大熊貓的屬性每個月的第一天,作爲一個標籤:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
# data
dim = 8760
idx = pd.date_range('1/1/2000 00:00:00', freq='h', periods=dim)
df = pd.DataFrame(np.random.randn(dim, 2), index=idx)
# select tick positions based on timestamp attribute logic. see:
# https://pandas.pydata.org/pandas-docs/stable/generated/pandas.Timestamp.html
positions = [p for p in df.index
if p.hour == 0
and p.is_month_start
and p.month in range(1, 13, 1)]
# for date formatting, see:
# https://docs.python.org/2/library/datetime.html#strftime-and-strptime-behavior
labels = [l.strftime('%m-%d') for l in positions]
# plot with adjusted labels
ax = df.plot(kind='line', grid=True)
ax.set_xlabel('Time (h)')
ax.set_ylabel('Foo (Bar)')
ax.set_xticks(positions)
ax.set_xticklabels(labels)
plt.show()
產量:
希望這有助於!
你是否將日期解析爲日期時間? –
@DemetriP謝謝。看起來至少是問題的一部分。現在使用ax.xaxis.set_major_locator之後,我確實看到了蜱蟲......唯一的問題是現在我每年只看到一個蜱蟲。 我明顯使用MonthLocator錯誤。 – Rotkiv