我想用函数格式化直方图的y轴:
def convertCountToKm2(x):
return x * 25.0 * 1e-6
因为这会将直方图y轴从单元格数转换为km2区域。直方图由以下人员创建:
bins = numpy.array(list(range(0,7000,1000)))
plt.hist(Anonzero,bins)
这导致了这个数字:
我尝试使用以下代码调用该函数:
yFormat = tkr.FuncFormatter(convertCountToKm2)
plt.yaxis.set_major_formatter(yFormat)
返回错误:module 'matplotlib.pyplot' has no attribute 'yaxis'
How do I format axis number format to thousands with a comma in matplotlib?似乎也有关于格式化轴的一些提示,但这并不是特定于这种情况。我无法用它来回答我的问题。
答案 0 :(得分:2)
错误告诉您plt
(我认为pyplot
}没有yaxis
,这是正确的。 yaxis
是轴的属性。使用
plt.gca().yaxis.set_major_formatter(...)
解决这个问题可能会遇到另一个问题,即FuncFormatter
的函数需要接受两个参数x, pos
。您可以忽略pos
,但必须在签名
def convertCountToKm2(x, pos=None):
return x * 25.0 * 1e-6
yFormat = FuncFormatter(convertCountToKm2)
plt.gca().yaxis.set_major_formatter(yFormat)