如何在python中创建日志日志直方图

时间:2011-10-08 01:53:29

标签: python matplotlib histogram

给定一个值数组,我想根据它们的计数绘制这些值的对数日志直方图。我只知道如何记录x值,而不是y值,因为它们没有在我的程序中显式创建。

1 个答案:

答案 0 :(得分:23)

查看pyplot documentation

  • pyplot.hist可以使用关键字参数log = True
  • 为您“记录”y轴
  • pyplot.hist接受bins关键字参数,但您必须自己“记录”x轴

例如:

#!/usr/bin/python
import numpy
from matplotlib import pyplot as plt

data = numpy.random.gumbel(2 ** 20, 2 ** 19, (1000, ))

bins = range(15, 25)
plt.xticks(bins, ["2^%s" % i for i in bins])
plt.hist(numpy.log2(data), log=True, bins=bins)
plt.show()

这将为您提供在日志轴上绘制的每个箱中有多少元素的实际计数(这是人们通常用对数图表示的含义)。如果您想要这个或者在线性轴上绘制计数的日志,我无法从您的措辞中得知。

不过,箱子甚至不需要均匀分布。