【发布时间】:2018-07-25 05:08:56
【问题描述】:
考虑这个简单的例子
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.ticker import FuncFormatter
import matplotlib.dates as mdates
pd.__version__
Out[147]: u'0.22.0'
idx = pd.date_range('2017-01-01 05:03', '2017-01-01 18:03', freq = 'min')
df = pd.Series(np.random.randn(len(idx)), index = idx)
df.head()
Out[145]:
2017-01-01 05:03:00 0.4361
2017-01-01 05:04:00 0.9737
2017-01-01 05:05:00 0.8430
2017-01-01 05:06:00 0.4292
2017-01-01 05:07:00 0.5739
Freq: T, dtype: float64
我想绘制这个,并且每小时都有刻度。我用:
fig, ax = plt.subplots()
hours = mdates.HourLocator(interval = 1) #
h_fmt = mdates.DateFormatter('%H:%M:%S')
df.plot(ax = ax, color = 'black', linewidth = 0.4)
ax.xaxis.set_major_locator(hours)
ax.xaxis.set_major_formatter(h_fmt)
给了
为什么这里的刻度不是每小时都出现一次?感谢您的帮助!
【问题讨论】:
-
你应该和
xtick一起玩。 -
你知道怎么做吗?谢谢!!
-
@ℕʘʘḆḽḘ:所以你想要的输出只是看到每一个完整小时的峰值?
-
@Skandix,是的,我不仅想在 8 点、10 点、12 点看到滴答声,还想在每小时 6、7、8、9、10 点等看到滴答声
标签: python pandas matplotlib