в зошиті Ipython / Jupyter, Pandas не відображає графіку, який я намагаюся побудувати


104

Я намагаюся побудувати деякі дані, використовуючи панди в Ipython Notebook, і, хоча він дає мені об'єкт, він насправді не будує сам графік. Так це виглядає приблизно так:

In [7]:

pledge.Amount.plot()

Out[7]:

<matplotlib.axes.AxesSubplot at 0x9397c6c>

Графік повинен слідувати після цього, але він просто не відображається. Я імпортував matplotlib, тому це не проблема. Чи є інший модуль, який мені потрібно імпортувати?


Я міг складати речі пару днів тому під час перегляду відео, але зараз я не можу нічого задумати. і я, здається, роблю те саме, що і з документацією. pandas.pydata.org/pandas-docs/stable/visualization.html Отже, я вважаю, що щось із моєю системою невірно або модуль не імпортується
chrisfs

@chrisfs є більш нова правильна відповідь. Той, який ви вибрали кілька років тому, зараз неправильний. Чи розглядаєте ви зміну прийнятої відповіді? Дякую.
tumultous_rooster

Відповіді:


177

Зауважте, що --pylab застарілий і видалений з новіших збірок IPython. Тепер рекомендований спосіб увімкнути вбудований графік у зошиті IPython:

%matplotlib inline
import matplotlib.pyplot as plt

Побачити цій публікації зі списку розсилки ipython-dev.


2
Дуже добре. Після використання %matplotlib inlineмоїх спроб побудувати графік було видно вбудоване зображення, приємно. Насправді імпорт не є необхідним, якщо сюжет є методом вже існуючого об'єкта, як в ОП.
Ян Вльчинський,

2
Це нова правильна відповідь. Більше інформації в цій публікації в блозі .
Скотт Лоурі

@Tal Yarkoni Я додав перший рядок вашої відповіді, щоб він спрацював. дякую ~~!
verystrongjoe

Також стосується панди в зошиті Юпітера.
datalifenyc

Для повноти %matplotlib nbaggкорисно в ці дні отримати більш інтерактивну версію.
Фредерік Норд

50

Редагувати: Пілаб застарілий. Перегляньте поточну прийняту відповідь

Гаразд, здається, що відповідь полягає в тому, щоб запустити ноутбук ipython з --pylab = inline. тож ipython notebook --pylab = inline У ньому є те, що я бачив раніше, і що я хотів це зробити. Вибачте за неясне оригінальне запитання.


26
Так, це те, що вам потрібно. Ви також можете запустити %pylab inlineвсередині ноутбука, щоб увімкнути режим пілаб.
Томас К

3
зауважте, що для роботи панди це не повинно бути в режимі вбудованого режиму. Я щасливо використовую просто ipython notebook --pylabз пандами, щоб мати сюжет у додатковому вікні, якщо це хтось хоче.
К.-Майкл Айе

26

З вашим import matplotlib.pyplot as pltпросто додати

plt.show()

і він покаже всі збережені сюжети.


1
добре, що допомагає. Я думав, що Ipython зробить вбудовані сюжети автоматично. Документація для панд також не показує, що потрібно робити plt.show () pandas.pydata.org/pandas-docs/stable/visualization.html
chrisfs

4

після імпортування matplotlib ви виконали одну магію, якщо ви запустили ipython таким чином

ipython notebook 

%matplotlib inline 

виконати цю команду, все буде показано ідеально


1

запустити ipython з ipython notebook --pylab inline, тоді графік покаже inline.


Так, це була перша відповідь на це запитання, але вона, здається, і зараз застаріла.
chrisfs


-5

Все, що вам потрібно зробити - це імпортувати matplotlib.

import matplotlib.pyplot as plt 

I have imported matplotlib
WoodChopper

хммм, це дивно. що ти використовуєш? Я використовую ноутбук iPython. мій код нижче. data.plot (kind = 'barh', stacked = True)
цікавий розум

Ця відповідь є повторенням прийнятої відповіді вище.
chrisfs
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.