8
我已使用ax = imshow()
創建了一幅圖像。 ax
是一個AxesImage對象,但我似乎無法找到我需要訪問以定製刻度標籤的函數或屬性。 ordinary pyplots似乎有set_ticks
和set_ticklabels
方法,但這些方法似乎不適用於AxesImage類。有任何想法嗎?謝謝〜爲AxesImage定製刻度?
我已使用ax = imshow()
創建了一幅圖像。 ax
是一個AxesImage對象,但我似乎無法找到我需要訪問以定製刻度標籤的函數或屬性。 ordinary pyplots似乎有set_ticks
和set_ticklabels
方法,但這些方法似乎不適用於AxesImage類。有任何想法嗎?謝謝〜爲AxesImage定製刻度?
對於它的價值,你稍微誤解什麼imshow()
回報,軸如何matplotlib一般是結構化...
的AxesImage對象負責顯示的圖像(例如色彩映射表,數據,等等),但不是圖像所在的軸。它不能控制諸如刻度和刻度標籤之類的東西。
你想要使用的是當前的軸實例。
如果您使用的是pylab
接口,您可以使用或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(...)
希望能夠澄清一些事情!
是!謝謝 - 我曾預料它會有點類似於matlab中image()返回軸句柄。該對象的名稱也有點誤導...我也注意到關於getter/setter也!在matlab中,我經常使用'cellarray {:}'符號將參數傳遞給axis setters,這個符號就像python的'* args'和'** kwargs'語法一樣,但是在這種情況下它不那麼簡單肯定有辦法繞過它)。 – hatmatrix 2010-09-16 03:37:29