2014-09-16 6 views
21

Ich habe den folgenden Code:Achsen in Nebenhandlungen

import matplotlib.pyplot as plt 
import matplotlib.image as mpimg 
import matplotlib.cm as cm 

img = mpimg.imread("lena.jpg") 

f, axarr = plt.subplots(2, 2) 
axarr[0,0].imshow(img, cmap = cm.Greys_r) 
axarr[0,0].set_title("Rank = 512") 

rank = 128 
new_img = prune_matrix(rank, img) 
axarr[0,1].imshow(new_img, cmap = cm.Greys_r) 
axarr[0,1].set_title("Rank = %s" %rank) 

rank = 32 
new_img = prune_matrix(rank, img) 
axarr[1,0].imshow(new_img, cmap = cm.Greys_r) 
axarr[1,0].set_title("Rank = %s" %rank) 

rank = 16 
new_img = prune_matrix(rank, img) 
axarr[1,1].imshow(new_img, cmap = cm.Greys_r) 
axarr[1,1].set_title("Rank = %s" %rank) 

plt.show() 

Allerdings ist das Ergebnis ziemlich hässlich, weil der Werte auf den Achsen:

enter image description here

Wie kann ich abschalten Achsenwerte für alle Subplots gleichzeitig?

+0

Was ist los mit http://stackoverflow.com/questions/9295026/matplotlib-plots-removing-axis-legends-and-white-spaces? Können Sie Ihren Code auch ausführbar machen? – Veedrac

+0

Das Problem, dass die Achse ausgeschaltet ist, macht nur den letzten Teilplan unsichtbar. –

Antwort

39

Sie können die Achsen ausschalten, indem Sie dem Hinweis in Veedrac's Kommentar (Verknüpfung mit here) mit einer kleinen Modifikation folgen.

Anstatt plt.axis('off') zu verwenden, sollten Sie ax.axis('off') verwenden, wobei ax ein matplotlib.axes Objekt ist. Um dies für Ihren Code zu tun, müssen Sie einfach axarr[0,0].axis('off') usw. für jeden Ihrer Subplots hinzufügen.

Der folgende Code zeigt das Ergebnis (Ich habe den prune_matrix Teil entfernt, weil ich keinen Zugriff auf diese Funktion haben, in Zukunft bitte vollständig funktionierenden Code einreichen.)

import matplotlib.pyplot as plt 
import matplotlib.image as mpimg 
import matplotlib.cm as cm 

img = mpimg.imread("stewie.jpg") 

f, axarr = plt.subplots(2, 2) 
axarr[0,0].imshow(img, cmap = cm.Greys_r) 
axarr[0,0].set_title("Rank = 512") 
axarr[0,0].axis('off') 

axarr[0,1].imshow(img, cmap = cm.Greys_r) 
axarr[0,1].set_title("Rank = %s" % 128) 
axarr[0,1].axis('off') 

axarr[1,0].imshow(img, cmap = cm.Greys_r) 
axarr[1,0].set_title("Rank = %s" % 32) 
axarr[1,0].axis('off') 

axarr[1,1].imshow(img, cmap = cm.Greys_r) 
axarr[1,1].set_title("Rank = %s" % 16) 
axarr[1,1].axis('off') 

plt.show() 

Stewie example

Hinweis: Um nur die x oder y zu deaktivieren Achse Sie set_visible() zB verwenden können:

axarr[0,0].xaxis.set_visible(False) # Hide only x axis 
Verwandte Themen