私は次のコードを持っています:
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()
ただし、軸上の値のため、結果はかなりいです:
すべてのサブプロットの軸値を同時にオフにするにはどうすればよいですか?
Veedracのコメントのアドバイス( here にリンク)を少し修正するだけで、軸をオフにできます。
plt.axis('off')
を使用するのではなく、 ax.axis('off')
を使用する必要があります。ここで、ax
は_matplotlib.axes
_オブジェクトです。コードでこれを行うには、サブプロットごとにaxarr[0,0].axis('off')
などを追加するだけです。
以下のコードは結果を示しています(その関数にアクセスできないため_Prune_matrix
_部分を削除しました。将来的には完全に機能するコードを送信してください。 )
_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()
_
注:xまたはy軸のみをオフにするには、set_visible()
を使用できます。例:
_axarr[0,0].xaxis.set_visible(False) # Hide only x axis
_
import matplotlib.pyplot as plt
fig, ax = plt.subplots(2, 2)
すべてのサブプロットの軸をオフにするには、次のいずれかを実行します。
[axi.set_axis_off() for axi in ax.ravel()]
または
map(lambda axi: axi.set_axis_off(), ax.ravel())