it-swarm.com.de

Achsen in Unterplots ausschalten

Ich habe folgenden Code:

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()

Das Ergebnis ist jedoch aufgrund der Werte auf den Achsen ziemlich hässlich:

enter image description here

Wie kann ich Achsenwerte für alle Unterzeichnungen gleichzeitig ausschalten?

36
Sergey Ivanov

Sie können die Achsen ausschalten, indem Sie den Anweisungen in Veedrac's Kommentar (Link zu hier ) mit einer kleinen Änderung 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 Unterzeichnungen hinzufügen.

Der folgende Code zeigt das Ergebnis (ich habe den Teil Prune_matrix Entfernt, da ich keinen Zugriff auf diese Funktion habe. Bitte reichen Sie in Zukunft den voll funktionsfähigen Code ein. )

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-Achse auszuschalten, können Sie set_visible() verwenden, z.

axarr[0,0].xaxis.set_visible(False) # Hide only x axis
71
Ffisegydd
import matplotlib.pyplot as plt

fig, ax = plt.subplots(2, 2)


Um die Achsen für alle Unterzeichnungen auszuschalten, gehen Sie wie folgt vor:

[axi.set_axis_off() for axi in ax.ravel()]

oder

map(lambda axi: axi.set_axis_off(), ax.ravel())
5
Nirmal