1. ホーム
  2. python

[解決済み] なぜ plt.imshow() は画像を表示しないのですか?

2023-04-12 11:52:27

質問

私はkerasの初心者です。私のLinux上で最初のkerasプログラムを実行しようとしたとき、何かが私が望むように行きませんでした。 以下は私のPythonコードです。

import numpy as np
np.random.seed(123)
from keras.models import Sequential
from keras.layers import Dense, Dropout, Activation, Flatten
from keras.layers import Convolution2D, MaxPooling2D
from keras.utils import np_utils
from keras.datasets import mnist
(X_train,y_train),(X_test,y_test) = mnist.load_data()
print X_train.shape
from matplotlib import pyplot as plt
plt.imshow(X_train[0])

最後の文は何も表示されません。私はチュートリアルからこれらのコードをそのままコピーしました。そして、私のコンピュータのmatplotlibのバックエンドには何も問題がありません。私は以下のコードを通してそれをテストしました。

import matplotlib.pyplot as plt

data = [[0, 0.25], [0.5, 0.75]]

fig, ax = plt.subplots()
im = ax.imshow(data, cmap=plt.get_cmap('hot'), interpolation='nearest',
               vmin=0, vmax=1)
fig.colorbar(im)
plt.show()

というような画像になりました。



しかも、X_train[0]が出力されるし、何も問題なさそうです。

では、その理由は何でしょうか?なぜ私の最初のコードのimshow()関数は何も表示しなかったのでしょうか?

どのように解決するのですか?

解決方法は簡単で plt.show() を追加するだけです。

import numpy as np
np.random.seed(123)
from keras.models import Sequential
from keras.layers import Dense, Dropout, Activation, Flatten
from keras.layers import Convolution2D, MaxPooling2D
from keras.utils import np_utils
from keras.datasets import mnist
(X_train,y_train),(X_test,y_test) = mnist.load_data()
print X_train.shape
from matplotlib import pyplot as plt
plt.imshow(X_train[0])
plt.show()