matplotlib:hist2d中的log变换计数

cel*_*cel 8 python matplotlib

在matplotlib中绘制二维直方图时,是否有一种简单的方法可以获得对数转换计数?与该pyplot.hist方法不同,该pyplot.hist2d方法似乎没有日志参数.

目前我正在做以下事情:

import numpy as np
import matplotlib as mpl
import matplotlib.pylab as plt

matrix, *opt = np.histogram2d(x, y)
img = plt.imshow(matrix, norm = mpl.colors.LogNorm(), cmap = mpl.cm.gray, 
                 interpolation="None")
Run Code Online (Sandbox Code Playgroud)

其中绘制了预期的直方图,但轴标签显示了箱的索引,因此不是预期的值.

cel*_*cel 13

这有点令人尴尬,但我的问题的答案实际上是在docstring相应的代码中:

Notes
-----
    Rendering the histogram with a logarithmic color scale is
    accomplished by passing a :class:`colors.LogNorm` instance to
    the *norm* keyword argument. Likewise, power-law normalization
    (similar in effect to gamma correction) can be accomplished with
    :class:`colors.PowerNorm`.
Run Code Online (Sandbox Code Playgroud)

这样可行:

import matplotlib as mpl
import matplotlib.pylab as plt
par = plt.hist2d(x, y, norm=mpl.colors.LogNorm(), cmap=mpl.cm.gray)
Run Code Online (Sandbox Code Playgroud)