python - matplotlib 中的直方图,x 轴上的时间

标签 python time matplotlib plot histogram

我是 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

由于多年来会有很多点,我想在我的 x-Axis 上设置 start dateend date ,然后标记n-time steps(即1年的步骤),最后决定有多少个bins

我将如何实现这一目标?

最佳答案

Matplotlib 使用自己的日期/时间格式,但也提供了简单的转换函数,这些函数在 dates 模块中提供。它还提供了各种 LocatorsFormatters 来负责将刻度放置在轴上并格式化相应的标签。这应该可以帮助您开始:

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()

结果:

enter image description here

关于python - matplotlib 中的直方图,x 轴上的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29672375/

相关文章:

python - seaborn热图y轴逆序

python - 递归函数与列表理解中的串联错误

Python Selenium - ResourceWarning : Enable tracemalloc to get the object allocation traceback

python - 在 GUI 中隐藏 QtMainWindow 选项卡?

python - 如何在 python 中对 namedtuple 使用 sum()/average()?

datetime - 如何在 Go 中获取序号指示符(第 1、第 2、第 3 等)

c++ - 由于配置文件部分之外的代码,使用clock_gettime()进行不合理的时间测量

javascript - RethinkDb:在给定时间戳之前获取 X 个条目

python - 如何加载图像并使用keras显示图像?

python - 为什么数据框无法在 matplotlib 中绘制 3D 图形?