2017-03-08 64 views
3

下面的代碼片段產生不可見圖軸一條線,可見軸的正常情節:如何確定matplot lib軸是否已通過axes.axis('off')關閉?

import matplotlib.pyplot as plt 
fig, ax = plt.subplots(2) 
ax[0].plot([0, 1]) 
ax[0].set_xlabel('x1') 
ax[0].axis('off') 

ax[1].plot([1, 0]) 
ax[1].set_xlabel('x2') 

enter image description here

我想檢測一個給定的axes實例的軸不論是一般的方法是可見的。我已經嘗試了一些事情沒有找到一種方法來區分哪些是可見的,從那些通過上述方法隱藏軸:

for i in range(2): 
    print('axes set', i, 
      ax[i].get_frame_on(), 
      ax[i].xaxis.get_visible(), 
      ax[i].xaxis.get_alpha()) 

結果:

('axes set', 0, True, True, None) 
('axes set', 1, True, True, None) 

正如你所看到的,沒有的具有可見和不可見軸的子圖的輸出是不同的。

假設一組axes對象可能已經關閉,也可能沒有關閉,請問我該如何判斷哪些對象可見?

回答

3

您可以使用Axes對象的axison attribute來確定axes是打開還是關閉。

if ax.axison: 
    print 'on' 
else: 
    print 'off' 
+1

我覺得用這種方法遮蔽布爾數據類型有點危險,因爲人們通常只是從答案中複製代碼,然後陷入陷阱。 – ImportanceOfBeingErnest

+1

@ImportanceOfBeingErnest你是對的。沒在想。現在修復。 – Suever

+0

別擔心,我沒有影響數據類型。 :) –