pyplot 에서 subplot 사용시에 오류 메시지 : ValueError: Illegal argument(s) to subplot: (2, 10)

조회수 2225회

텐서플로우 골빈 해커의 책을 보고 연습 중인 한 초보자입니다. pyplot 의 subplot 을 사용하는데 저는 분명 책의 코드랑 똑같이 작성했는데 오류메시지를 뿜어내내요 ㅜㅜ 어떻게 해결해야하는지 도와주세요.

Traceback (most recent call last):
  File "C:/Users/yym30/PycharmProjects/tensorflow/mnist/networks/autoencoder.py", line 69, in <module>
    fig, ax = plt.subplot(2, sample_size, figsize = (sample_size, 2))
  File "C:\Users\yym30\Anaconda3\envs\dl\lib\site-packages\matplotlib\pyplot.py", line 1072, in subplot
    a = fig.add_subplot(*args, **kwargs)
  File "C:\Users\yym30\Anaconda3\envs\dl\lib\site-packages\matplotlib\figure.py", line 1239, in add_subplot
    a = subplot_class_factory(projection_class)(self, *args, **kwargs)
  File "C:\Users\yym30\Anaconda3\envs\dl\lib\site-packages\matplotlib\axes\_subplots.py", line 72, in __init__
    raise ValueError('Illegal argument(s) to subplot: %s' % (args,))
ValueError: Illegal argument(s) to subplot: (2, 10)

Process finished with exit code 1

이것이 오류 메시지입니다.

그리고 이것은 해당 subplot 을 불러오는 코드입니다.

sample_size = 10
samples = sess.run(decoder, feed_dict={X:mnist.test.images[:sample_size]})

fig, ax = plt.subplot(2, sample_size, figsize = (sample_size, 2))

for i in range(sample_size):
    ax[0][i].set_axis_off()
    ax[1][i].set_axis_off()
    ax[0][i].imshow(np.reshape(mnist.test.images[i], (28,28)))
    ax[1][i].imshow(np.reshape(samples[i], (28, 28)))

plt.show()

도와주세요 ㅜㅜ

1 답변

  • 좋아요

    0

    싫어요
    채택 취소하기

    plt.subplot(2, sample_size, figsize = (sample_size, 2)) 가 아니라 plt.subplots(2, sample_size, figsize = (sample_size, 2))

    로 써야합니다. (s 가 빠져있었음)


    또, 골빈해커 - 텐서플로 책에 수록된 코드는 golbin / TensorFlow-Tutorials에 전부 나와있는 것 같아요.

    이쪽을 참고해보시는게 좋을 듯욤!

    • 제가 몇주를 고민한 오류인데 정말 감사합니다 ㅜㅜㅜㅜ 아마 님이 안계셨다면 몇달은 더 고민했을 것 같네요 ^^ 감사합니다. yym0329 2018.6.7 00:12

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)