python - 为 AxesImage 自定义刻度?

标签 python matplotlib

我用 ax = imshow() 创建了一个图像图。 ax 是一个 AxesImage 对象,但我似乎找不到自定义刻度标签所需的函数或属性。 ordinary pyplots似乎有 set_ticksset_ticklabels 方法,但这些似乎不适用于 AxesImage 类。有任何想法吗?谢谢~

最佳答案

就其值(value)而言,您有点误解了 imshow() 返回的内容,以及 matplotlib 轴的一般结构...

AxesImage 对象负责显示的图像(例如颜色图、数据等),但不负责图像所在的轴。它无法控制刻度和刻度标签等内容。

您要使用的是当前轴实例。

如果您使用pylab 接口(interface),您可以使用gca() 访问它,或者matplotlib.pyplot.gca如果您通过 pyplot 访问内容。但是,如果您使用其中任何一种,则可以使用 xticks() 函数来获取/设置 xtick 标签和位置。

例如(使用pylab):

import pylab
pylab.figure()
pylab.plot(range(10))
pylab.xticks([2,3,4], ['a','b','c'])
pylab.show()

使用更面向对象的方法(随机说明,matplotlib 的 getter 和 setter 很快就会变得烦人......):

import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure()
ax = fig.add_subplot(1,1,1) # Or we could call plt.gca() later...
im = ax.imshow(np.random.random((10,10)))
ax.set_xticklabels(['a','b','c','d'])  # Or we could use plt.xticks(...)

希望一切都清楚一点!

关于python - 为 AxesImage 自定义刻度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3716339/

相关文章:

python - 在运行时 append 到字典

python - python 内置的 open() 函数中的缓冲有什么用?

python - 如何在pygame中将 Sprite 分成更小的部分?

python - 概率网格 matplotlib

python - 如何从数据框中绘制折线图中的误差条

python - 如何使用 matplotlib 在 python 中绘制时间戳?

python - 从云源存储库部署时不会触发 Firestore 云功能

map 检测上的Python OpenCV纬度曲线

matplotlib - 为什么 Keras.InceptionV3.preprocess_input 和 plt.imshow(img) 使图片如此暗

python - 仅在 matplotlib 中水平线在一侧到无穷远