Как получить графики с ноутбука Jupiter
Обновлено: 21.11.2024
Это выдержка из Jupyter Notebook, над которой я работал сегодня. Я не мог получить желаемый результат из некоторых результатов запросов в виде снежинок, и мне нужно было немного лучше понять, как представлять блокплоты.
Я столкнулся с ситуацией, когда мне нужно было обобщить результаты некоторых тестов, в которых у меня было две категории.
- Категория верхнего уровня ( level1 ) содержала названия определенных SQL-запросов.
- Второй уровень ( level2 ) определил несколько различных серверов SQL, которые тестировались.
Время ответа на запрос responseMS — это количество миллисекунд, необходимое для выполнения запроса, но не включает время на передачу результатов обратно клиенту.
Определить количество выборок, которые будут смоделированы со случайными данными.
Определить количество уникальных категорий level1 и level2.
Создать уникальные категории level1 и level2
Для списка я случайным образом выбираю элементы размера из списка в качестве генератора.
Создайте фрейм данных с двумя категориями уровня и случайными выборками
Проверьте образец фальшивых данных во время запроса, чтобы убедиться, что он соответствует имеющимся у меня данным.
Быстрая первая попытка построить коробочную диаграмму. Я вижу, что мне нужно, но трудно общаться с другими.
Решил попробовать Seaborn, так как сейчас на него довольно много упоминаний…
Придется копнуть немного глубже, чтобы найти представление двух категорий.
Всегда приятно видеть точки, представляющие коробчатую диаграмму, если только точек не слишком много. После балла баллы перегружаются и не должны отображаться.
График роевого разброса добавляет интересной организации к разбросу.
Просто хотел посмотреть рой без сюжетной линии.
Углубление в презентацию двух категорий. Пришлось читать о кошачьем заговоре. Похоже, то, что мне нужно.
Это то, что я искал. Для каждой категории уровня 1 сравните диаграммы для категорий уровня 2.
Кроме того, я хотел посмотреть, сколько работы потребуется, чтобы перевести Jupyter Notebook на уценку Hugo. Не слишком сложно.
В Jupyter выберите файл -> Загрузить как -> Markdown. Будет загружен .zip, содержащий блокнот в формате .md, а также все графики в формате png.
Переместите файл уценки в статическую папку Hugo и добавьте блок заголовка +++, содержащий заголовок, дату, описание и т. д.
Переместите изображения .jpg в папку Hugo static/img. Я добавил к ним префикс, чтобы закрепить их в статье.
Plotly — это бесплатная графическая библиотека с открытым исходным кодом для Python. Мы рекомендуем вам ознакомиться с последними инструкциями по установке или обновлению в нашем руководстве по началу работы, а затем перейти к нашим учебным пособиям по основам Plotly или сразу перейти к некоторым учебным пособиям по базовым диаграммам.
Введение¶
В Jupyter есть красивая записная книжка, которая позволяет писать и выполнять код, анализировать данные, встраивать контент и делиться воспроизводимой работой. Блокнот Jupyter (ранее известный как Блокнот IPython) позволяет легко обмениваться кодом, данными, графиками и пояснениями в одном блокноте. Публикация гибкая: PDF, HTML, ipynb, информационные панели, слайды и многое другое. Ячейки кода основаны на формате ввода и вывода. Например:
Установка¶
Есть несколько способов использования Jupyter Notebook:
- Установить с помощью pip . Откройте терминал и введите: $ pip install jupyter .
- Пользователи Windows могут выполнить установку с помощью setuptools . и Enthought позволяют загрузить настольную версию Jupyter Notebook. позволяет пользователям работать в среде ноутбука через настольное приложение. предоставляет размещенный доступ к Jupyter Notebooks. предлагает веб-ноутбуки. запускает временную онлайн-блокнот для отдельных пользователей.
Начало работы¶
Полезные команды¶
– Завершение с помощью табуляции: Jupyter поддерживает автодополнение с помощью табуляции! Вы можете ввести имя_объекта. для просмотра атрибутов объекта. Советы по клеточной магии, запуску Блокнотов и изучению объектов можно найти в документации Jupyter.
– Справка: введение и обзор функций.
– Краткий справочник: откройте краткий справочник, выполнив:
- Сочетания клавиш: Shift-Enter запустит ячейку, Ctrl-Enter запустит ячейку на месте, Alt-Enter запустит ячейку и вставит другую ниже. Другие сочетания клавиш смотрите здесь.
Языки¶
Большая часть этого руководства посвящена выполнению кода Python в блокнотах Jupyter. Вы также можете использовать блокноты Jupyter для выполнения кода R. Перейдите к разделу [R] для получения дополнительной информации об использовании IRkernel с блокнотами Jupyter и примерами построения графиков.
Управление пакетами¶
При установке пакетов в Jupyter вам нужно либо установить пакет в реальной оболочке, либо запустить команду ! префикс, например:
Возможно, вы захотите перезагрузить подмодули, если вы редактировали код в одном из них. IPython поставляется с магией автоматической перезагрузки. Вы можете перезагрузить все измененные модули перед выполнением новой строки.
Jupyter Notebook – это инструмент номер один для специалистов по обработке и анализу данных. Он предлагает интерактивный веб-интерфейс, который можно использовать для визуализации данных, удобного анализа и совместной работы.
Визуализация данных позволяет найти контекст для ваших данных с помощью карт или графиков. В этом руководстве представлено подробное руководство по взаимодействию с графиками в Jupyter Notebook.
Предпосылки
На вашем компьютере должен быть установлен Jupyter. Если это не так, вы можете установить его, введя следующий код в командную строку:
Вам также понадобятся библиотеки pandas и matplotlib:
После завершения установки запустите сервер Jupyter Notebook. Введите команду ниже в своем терминале, чтобы сделать это. Страница Jupyter с файлами в текущем каталоге откроется в браузере вашего компьютера по умолчанию.
Примечание. Не закрывайте окно терминала, в котором вы запускаете эту команду. Если вы это сделаете, ваш сервер остановится.
Простой сюжет
На новой странице Jupyter запустите этот код:
Код предназначен для простого линейного графика. Первая строка импортирует графическую библиотеку pyplot из API matplotlib. Третья и четвертая строки определяют оси x и y соответственно.
Метод plot() вызывается для построения графика. Затем для отображения графика используется метод show().
Предположим, вместо этого вы хотите нарисовать кривую. Процесс такой же. Просто измените значения списка Python для оси Y.
Обратите внимание на важную вещь: на обоих графиках нет явного определения масштаба. Масштаб рассчитывается и применяется автоматически. Это одна из многих интересных функций Juypter, которые помогут вам сосредоточиться на работе (анализе данных), а не на коде.
Если вы также будете бдительны, вы можете заметить, что количество значений для осей x и y одинаково. Если какой-либо из них меньше другого, при запуске кода будет отмечена ошибка, и график не будет отображаться.
Доступные типы
В отличие от линейного графика и кривой, приведенных выше, для отображения других графических представлений (например, гистограммы, гистограммы и т. д.) требуется явное определение.
Гистограмма
Чтобы отобразить гистограмму, вам нужно будет использовать метод bar().
Точечная диаграмма
Все, что вам нужно сделать, это использовать метод scatter() в предыдущем коде.
Я использую блокнот IPython со встроенной опцией --pylab, поскольку не хочу, чтобы графики отображались в другом окне. Теперь я хочу сохранить графики, которые я вижу в блокноте, в файлы PDF или PNG.
В некоторых примерах кода используется
но, похоже, это не работает во встроенном режиме.
Конечно, я мог бы просто сохранить PNG, сгенерированный из браузера, но я хотел бы сделать это с помощью строки Python. Меня также интересует экспорт PDF.
Я использую этот небольшой лайфхак jupyter nbconvert --to markdown *.ipynb . Он создает каталог для каждого блокнота для хранения изображений
1 Ответ 1
попробуйте это (обратите внимание, что файлы сохраняются в папку записной книжки по умолчанию):
если вы хотите png, просто измените его на 'sample.jpg' .
Обратите внимание, что вызов savefig() должен находиться в той же ячейке блокнота, что и команды построения графика.
просто укажите папку в своем пути, например: 'home/foo/bar/sample.pdf', если вы хотите сохранить графики в другую папку. изменение каталога по умолчанию также приведет к перемещению файлов блокнота.
@cls сначала скопируйте файлы *.ipynb в нужный каталог. затем запустите сервер блокнота с помощью $ ipython ноутбука --pylab=inline --notebook-dir=/path/to/my/notebooks
@root: Похоже, ключевым моментом является сохранение savefig() в той же ячейке, что и команды построения графика. Фактически, plot() в одной ячейке и savefig() в следующей ячейке не сохраняет файл (IPython 0.13 для Mac OS X через MacPorts). Было бы неплохо, если бы это было подчеркнуто в вашем ответе.
@EOL @ZachDwiel Кто-нибудь из вас знает, почему savefig() должен находиться в той же ячейке, что и команды построения графика?
@braunmagrin Хороший вопрос. Меня это поначалу удивило. Я могу предположить, что когда вы открываете блокнот, текущей цифры нет, так как блокнот обычно содержит много цифр.Кроме того, при выходе из ячейки текущая фигура отсутствует, поэтому savefig() не имеет цели. Опять же, я просто догадываюсь... Я не уверен, почему последняя цифра на графике не может быть текущей цифрой по соглашению.
Эта статья является продолжением моей предыдущей статьи об анализе данных с помощью Python. Я собираюсь использовать свое базовое введение в IPython, блокноты и панды, чтобы показать, как визуализировать данные, которые вы обработали с помощью этих инструментов. Я надеюсь, что это продемонстрирует вам (еще раз), насколько мощны эти инструменты и как много вы можете сделать с таким небольшим кодом. В конечном итоге я надеюсь, что эти статьи помогут людям перестать обращаться к Excel каждый раз, когда им нужно нарезать и нарезать какие-то файлы. Инструменты в среде Python могут быть гораздо более мощными, чем ручное копирование и вставка, которые большинство людей делают в Excel.
Я расскажу, как начать делать простые графики и графики данных в pandas. Я использую новый файл данных того же формата, что и моя предыдущая статья, но включающий данные только для 20 клиентов. Если вы хотите продолжить, файл доступен здесь.
Начало работы
Как описано в предыдущей статье, я использую блокнот IPython для изучения своих данных.
Сначала мы собираемся импортировать библиотеки pandas, numpy и matplot. Я также показываю версию панд, которую использую, чтобы вы могли убедиться, что ваша версия совместима.
Затем включите IPython для отображения графиков matplotlib.
Мы прочитаем файл так же, как делали это в предыдущей статье, но я скажу ему обрабатывать столбец даты как поле даты (используя parse_dates ), чтобы позже я мог выполнить повторную выборку.
номер счета | имя | артикул | категория | количество | цена за единицу | расходная цена | дата | 0 | 296809 | Carroll PLC | QN-82852 | Ремень | 13< /td> | 44,48 | 578,24 | 2014-09-27 07:13:03 |
---|---|---|---|---|---|---|---|---|
1 | 98022 | Heidenreich-Bosco | MJ-21460 | Обувь | 19 | 53.62< /td> | 1018.78 | 2014-07-29 02:10:44 |
2 | 563905 | Kerluke, Reilly and Bechtelar | AS-93055 | Рубашка | 12 | 24,16 | 289,92 | 2014-03-01 10:51:24 |
3 | 93356 | Уотерс- Уокер | AS-93055 | Рубашка | 5 | 82,68 | 413,40 | 2013-11-17 20:41:11 |
4 | 659366 | Велчи-Фэйи | AS-93055 | Рубашка | 18 | 99,64 | 1793.52 | 2014-01-03 08:14:27 |
Теперь, когда мы прочитали данные, мы можем провести быстрый анализ
номер счета | количество | цена за единицу | ext цена | |
---|---|---|---|---|
количество | 1000.000000 | 1000.000000 | 1000.000000 td> | 1000,00000 |
среднее | 535208,897000 | 10,328000 | 56,179630 | < td>579,84390|
std | 277589,746014 | 5,687597 | 25,331939 | 435,30381 |
мин | 93356,000000 | 1,000000 | 10,060000 | 10,38000 |
25% | 299771,000000 | 5,750000 | 35,995000 | 232,60500 | < /tr>
50% | 563905,000000 | 10,000000 | 56,765000 | 471,72000 |
75% | 750461,000000 | 15,000000 | 76,802500 | 878,13750 | max | 995267.000000 | 20,000000 | 99,970000 | 1994,80000 | таблица>
имя | расширенная цена | дата | |
---|---|---|---|
0 | Carroll PLC | 578.24 | 2014-09-27 07:13:03 td> |
1 | Хайденрайх-Боско | 1018.78 | 2014-07-29 02:10:44 |
2 | Керлюк, Рейли и Бехтелар | < td>289.922014-03-01 10:51:24 | |
3 | Уотерс-Уокер | < td>413.402013-11-17 20:41:11 | |
4 | Ваелчи-Фэйи | < td>1793.522014-01-03 08:14:27 |
Это представление содержит несколько строк для каждого клиента. Чтобы понять модели покупок, давайте сгруппируем всех клиентов по именам. Мы также можем посмотреть количество записей на клиента, чтобы получить представление о распределении.
Теперь, когда наши данные представлены в простом для обработки формате, давайте определим, сколько каждый клиент купил в течение нашего периода времени.
Функция суммирования позволяет нам быстро суммировать все значения по клиентам. Мы также можем отсортировать данные с помощью команды sort.
дополнительная цена | |
---|---|
имя | |
Дэвис, Кшлерин и Рейли | 19054,76 |
Хуэль-Хааг | 21087,88 |
Горчани-Хан | 22207,90 |
Хэмилл-Хаккет | 23433,78 |
Heidenreich-Bosco | 25428,29 |
Теперь, когда мы знаем, как выглядят данные, очень просто создать гистограмму. При использовании блокнота IPython график будет отображаться автоматически.
К сожалению, эта диаграмма немного уродлива. С помощью нескольких настроек мы можем сделать его немного более эффектным. Давайте попробуем:
- сортировка данных по убыванию
- удаление легенды
- добавление заголовка
- обозначение осей
На самом деле это немного говорит нам о наших крупнейших клиентах и о том, насколько велика разница между их продажами и нашими самыми маленькими клиентами.
Теперь давайте попробуем посмотреть, как продажи распределяются по категориям.
имя | категория | расширенная цена | дата | |
---|---|---|---|---|
0 | Carroll PLC | Пояс | 578,24 | 2014-09-27 07:13:03 |
1 | Heidenreich-Bosco | Обувь | 1018,78 | 2014-07-29 02:10:44 |
2 | Керлюк, Рейли и Бехтелар< /td> | Рубашка | 289.92 | 2014-03-01 10:51:24 |
3 | Waters-Walker | Рубашка | 413.40 | 2013-11-17 20:41:11 |
4 | Waelchi-Fahey | Рубашка | 1793.52 | 2014-01-03 08:14:27 td> |
Мы можем использовать groupby для организации данных по категориям и именам.
дополнительная цена | ||
---|---|---|
имя | категория< /th> | |
Berge LLC | Пояс | 6033.53 td> |
Рубашка | 9670.24 | |
Обувь | 14361.10 | tr>|
Carroll PLC | Пояс | 9359.26 |
Рубашка | 13717.61 |
Представление категорий выглядит хорошо, но нам нужно разбить его на части, чтобы отобразить в виде гистограммы с накоплением. unstack может сделать это за нас.
дополнительная цена | |||
---|---|---|---|
категория | Пояс< /th> | Рубашка | Обувь |
имя | |||
Berge LLC | 6033,53 | 9670,24 | 14361,10 |
Carroll PLC | 9359,26 | 13717,61 | 12857,44 |
Коул-Эйхманн | 8112,70 | 14528,01 | 7794,71 |
Дэвис, Кшлерин и Рейли | 1604,13 | 7533,03 | 9917,60 |
Эрнсер, Круикшенк и Линд | 5894,38 | 16944,19 | 5250,45 | tr>
Чтобы немного почистить это, мы можем указать размер рисунка и настроить легенду.
Теперь, когда мы знаем, кто является крупнейшими клиентами и как они покупают товары, мы можем более подробно рассмотреть схемы покупок.
Давайте еще раз взглянем на данные и попробуем оценить размер отдельных покупок. Гистограмма позволяет нам группировать покупки, чтобы мы могли видеть, насколько велики транзакции клиентов.
расширенная цена | дата | 0 | 578.24 | 2014-09-27 07:13:03 |
---|---|---|
1 | 1018,78 | 2014-07-29 02:10:44 |
2 | 289,92 | 2014-03-01 10:51:24 |
3 | 413.40 | 2013-11-17 20:41: 11 |
4 | 1793.52 | 2014-01-03 08:14:27 |
Мы можем создать гистограмму с 20 сегментами, чтобы показать распределение шаблонов покупок.
Изучая схемы покупок с течением времени, мы видим, что стоимость большинства наших транзакций составляет менее 500 долларов США, и лишь очень немногие — около 1 500 долларов США.
Еще один интересный способ просмотра данных – анализ продаж во времени. Диаграмма может помочь нам понять: «Есть ли у нас определенные месяцы, когда мы более заняты, чем другие?»
Давайте сократим данные до размера и даты заказа.
расширенная цена | дата | 0 | 578.24 | 2014-09-27 07:13:03 |
---|---|---|
1 | 1018,78 | 2014-07-29 02:10:44 |
2 | 289,92 | 2014-03-01 10:51:24 |
3 | 413.40 | 2013-11-17 20:41: 11 |
4 | 1793.52 | 2014-01-03 08:14:27 |
Если мы хотим проанализировать данные по дате, нам нужно установить столбец даты в качестве индекса, используя set_index .
расширенная цена | |
---|---|
дата | |
2014-09-27 07:13:03 | 578.24 |
2014-07-29 02 :10:44 | 1018,78 |
2014-03-01 10:51:24 | 289,92 | tr>
2013-11-17 20:41:11 | 413.40 |
2014-01-03 08:14:27 | 1793.52 |
Одна из действительно крутых вещей, которые позволяет нам делать панда, — это повторная выборка данных. Если мы хотим просмотреть данные по месяцам, мы можем легко произвести повторную выборку и суммировать все это. Вы заметите, что я использую «М» в качестве периода повторной выборки, что означает, что данные должны быть пересчитаны на границе месяца.
Теперь наносить данные на график очень просто
Глядя на диаграмму, мы легко видим, что декабрь — наш пиковый месяц, а апрель — самый медленный.
Допустим, нам очень нравится этот сюжет, и мы хотим сохранить его где-нибудь для презентации.
Собираем все вместе
В своем типичном рабочем процессе я бы следовал описанному выше процессу использования блокнота IPython для обработки данных и определения того, как лучше всего сделать этот процесс воспроизводимым. Если я намерен проводить этот анализ на периодической основе, я создам отдельный скрипт, который будет делать все это с помощью одной команды.
Вот пример объединения всего этого в один файл:
В этом коде впечатляет то, что в 55 строках (включая комментарии) я создал очень мощную, но простую для понимания программу для многократной обработки данных и создания полезного вывода.
Надеюсь, это будет полезно. Не стесняйтесь оставлять отзывы в комментариях и дайте мне знать, если это будет полезно.
Читайте также:
- Смартбук Prestigio 141c не включается
- Как убрать всплывающую рекламу сбоку сайта на компьютере
- Файл Aaf что это такое
- Задача кеша Wininet, что это такое
- Как сохранить список друзей вконтакте в текстовый файл