我有一个结果(H,ranges) = numpy.histogram2d()
计算,我正在尝试绘制它。
Given H
我可以轻松地将它放入plt.imshow(H)
即可得到对应的图像。 (看http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.imshow http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.imshow )
我的问题是生成的图像的轴是“细胞计数”H
并且与值完全无关ranges.
我知道我可以使用关键字extent
(正如指出的:更改 matplotlib imshow() 图表轴上的值 https://stackoverflow.com/questions/18696122/change-values-on-matplotlib-imshow-graph-axis)。但这个解决方案对我不起作用:我的价值观range
不是线性增长(实际上它们呈指数增长)
我的问题是:我怎样才能把值range
in plt.imshow()
?或者至少,或者我可以手动设置标签值plt.imshow
结果对象?
编辑extent
这不是一个好的解决方案。
您只需将刻度标签更改为更适合您的数据的内容即可。
例如,在这里我们将每 5 个像素设置为一个指数函数:
import numpy as np
import matplotlib.pyplot as plt
im = np.random.rand(21,21)
fig,(ax1,ax2) = plt.subplots(1,2)
ax1.imshow(im)
ax2.imshow(im)
# Where we want the ticks, in pixel locations
ticks = np.linspace(0,20,5)
# What those pixel locations correspond to in data coordinates.
# Also set the float format here
ticklabels = ["{:6.2f}".format(i) for i in np.exp(ticks/5)]
ax2.set_xticks(ticks)
ax2.set_xticklabels(ticklabels)
ax2.set_yticks(ticks)
ax2.set_yticklabels(ticklabels)
plt.show()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)