我是matplotlib(1.3.1-2)的新手,我找不到合适的起点。我想用matplotlib在直方图中绘制点的时间分布。
基本上,我想绘制一个日期出现的累积总和。
date
2011-12-13
2011-12-13
2013-11-01
2013-11-01
2013-06-04
2013-06-04
2014-01-01
...
那将使
2011-12-13 -> 2 times
2013-11-01 -> 3 times
2013-06-04 -> 2 times
2014-01-01 -> once
由于多年来会有很多积分,因此我想start date
在x-Axis
和上设置end date
,然后标记n-time steps
(即1年),最后决定会有多少积分bins
。
我将如何实现?
Matplotlib使用自己的日期/时间格式,但还提供了dates
模块中提供的简单功能来进行转换。它也提供了各种Locators
与Formatters
该照顾放置在轴上的蜱和格式化相应标签。这应该使您开始:
import random
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
# generate some random data (approximately over 5 years)
data = [float(random.randint(1271517521, 1429197513)) for _ in range(1000)]
# convert the epoch format to matplotlib date format
mpl_data = mdates.epoch2num(data)
# plot it
fig, ax = plt.subplots(1,1)
ax.hist(mpl_data, bins=50, color='lightblue')
ax.xaxis.set_major_locator(mdates.YearLocator())
ax.xaxis.set_major_formatter(mdates.DateFormatter('%d.%m.%y'))
plt.show()
结果:
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句