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

use*_*923 19 python matplotlib histogram

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

小智 23

查看pyplot 文档.

  • 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()
Run Code Online (Sandbox Code Playgroud)

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

顺便说一句,箱子甚至不必均匀间隔.

  • 绘制线性轴计数的对数相对容易,无论如何两种方法都会给出相同的图形。+1 表示关键开始。但我不明白你在代码中做了什么:你是否在真正的线性 x 尺度上显示假指数刻度标签? (2认同)