【问题标题】:Matplotlib imshow ticks are wrong with negative valuesMatplotlib imshow 刻度是错误的负值
【发布时间】:2022-09-23 22:53:00
【问题描述】:
import matplotlib.pyplot as plt
import numpy as np


a = np.random.randn(5,5)
plt.imshow(a)
plt.xticks(range(5))
plt.yticks([i-2 for i in range(5)])
plt.show()

结果是

??

还想象我有 500 个而不是 5 个刻度,我怎么能通过刻度但显示的更少(例如每 10 个)?

    标签: python matplotlib imshow


    【解决方案1】:

    使用extent参数,不需要使用xticksyticks

    plt.imshow(a, extent=(-0.5, 4.5, -2.5, 2.5))
    

    输出:

    第二个问题使用MultipleLocator

    from matplotlib.ticker import MultipleLocator
    
    a = np.random.randn(500,500)
    fig, ax = plt.subplots(figsize=(10, 10))
    ax.imshow(a, extent=(-0.5, 500.5, -250.5, 250.5))
    ax.xaxis.set_major_locator(MultipleLocator(25))
    ax.yaxis.set_major_locator(MultipleLocator(25))
    

    输出:

    【讨论】:

      猜你喜欢
      • 2012-03-12
      • 2019-10-11
      • 2016-12-22
      • 1970-01-01
      • 2021-07-27
      • 1970-01-01
      • 2018-04-25
      • 1970-01-01
      • 2018-07-04
      相关资源
      最近更新 更多