почему matplotlib.pyplot отлично работает при использовании ноутбука jupyter, но не работает при запуске из файла .py в CMD? - PullRequest
0 голосов
/ 07 мая 2020

У меня есть блок кода, который отлично работает в записной книжке jupyter без проблем, но затем, когда я пытаюсь запустить его из файла .py на CMD, программа запускается, и я не получаю ошибок, но мои графики не объявиться. все, что я получаю, это пустое окно.

Кто-нибудь знает, что я делаю не так?

это код, который я пытаюсь запустить:

import matplotlib.pyplot as plt

fig = plt.figure()
axes1 = fig.add_axes([1,1,1,1])
axes1.set(title = 'Apple',
         xlabel = 'Date',
         ylabel = 'Adj Close')
axes1.plot(data['aapl'].index, data['aapl']['Adj Close'])

axes2 = fig.add_axes([1,2.2,1,1])
axes2.set(title = 'Microsoft',
         xlabel = 'Date',
         ylabel = 'Adj Close')
axes2.plot(data['msft'].index, data['msft']['Adj Close'])

axes3 = fig.add_axes([2.2,1,1,1])
axes3.set(title = 'Google',
         xlabel = 'Date',
         ylabel = 'Adj Close')
axes3.plot(data['googl'].index, data['googl']['Adj Close'])

axes4 = fig.add_axes([2.2,2.2,1,1])
axes4.set(title = 'Tesla',
         xlabel = 'Date',
         ylabel = 'Adj Close')
axes4.plot(data['tsla'].index, data['tsla']['Adj Close'])


plt.show(block=True)

вот что я посмотрите, когда я запускаю его из cmd:

enter image description here

вот что я вижу, когда запускаю код в ноутбуке jupyter (ожидается): enter image description here

1 Ответ

0 голосов
/ 08 мая 2020

Я разобрался. Похоже, проблема с объектом fig = plt.figure() по какой-то причине, не уверен, в чем проблема, но вместо того, чтобы выполнять исходный код, я заменил его на:

fig, axs = plt.subplots(2,2)
axs[0,0].plot(data['aapl'].index, data['aapl']['Adj Close'])
axs[0,0].set_title('APPLE')
axs[0,1].plot(data['tsla'].index, data['tsla']['Adj Close'])
axs[0,1].set_title('TESLA')
axs[1,0].plot(data['msft'].index, data['msft']['Adj Close'])
axs[1,0].set_title('MICROSOFT')
axs[1,1].plot(data['googl'].index, data['googl']['Adj Close'])
axs[1,1].set_title('GOOGLE')
for ax in axs.flat:
    ax.set(xlabel='Date', ylabel='Adj. Close')

, это по сути то же самое

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...