Мои любимые прописи. Рисунки по точкам и клеткам. Рабочая тетрадь дошкольника (Евгения Ищук)
57 ₽
+ до 8 баллов
Бонусная программа
Итоговая сумма бонусов может отличаться от указанной, если к заказу будут применены скидки.
Купить
Цена на сайте может отличаться от цены в магазинах сети. Внешний вид книги может отличаться от изображения на сайте.
Осталось мало
В наличии в 45 магазинах. Смотреть на карте
7
Цена на сайте может отличаться от цены в магазинах сети. Внешний вид книги может отличаться от изображения на сайте.
В серии «Мои любимые прописи» представлены шесть тетрадей: .- «Линии и узоры», .- «Рисунки по пунктиру», .- «Рисунки по точкам и клеткам», .- «Печатные буквы», .- «Простые слова», .- «Цифры и счёт». .Первые три тетради серии посвящены подготовке руки к письму. Последовательно выполняя предложенные задания, ребёнок сможет развить мелкую моторику пальцев, научится уверенно проводить линии, соединять точки, обводить клетки, рисовать простые и сложные контуры. .Следующие три рабочие тетради предназначены непосредственно для письма. Заполняя страницы прописей и выполняя несложные игровые задания, маленький ученик узнает, как пишутся печатные буквы, и потренируется складывать их в слова; увидит, как буквы собираются в алфавит, и узнает, какими они бывают; научится писать цифры и освоит некоторые простые арифметические действия.
Описание
Характеристики
В серии «Мои любимые прописи» представлены шесть тетрадей: .- «Линии и узоры», .- «Рисунки по пунктиру», .- «Рисунки по точкам и клеткам», .- «Печатные буквы», .- «Простые слова», .- «Цифры и счёт». .Первые три тетради серии посвящены подготовке руки к письму. Последовательно выполняя предложенные задания, ребёнок сможет развить мелкую моторику пальцев, научится уверенно проводить линии, соединять точки, обводить клетки, рисовать простые и сложные контуры.
.Следующие три рабочие тетради предназначены непосредственно для письма. Заполняя страницы прописей и выполняя несложные игровые задания, маленький ученик узнает, как пишутся печатные буквы, и потренируется складывать их в слова; увидит, как буквы собираются в алфавит, и узнает, какими они бывают; научится писать цифры и освоит некоторые простые арифметические действия.Учитель
На товар пока нет отзывов
Поделитесь своим мнением раньше всех
Как получить бонусы за отзыв о товаре
1
Сделайте заказ в интернет-магазине
2
Напишите развёрнутый отзыв от 300 символов только на то, что вы купили
3
Дождитесь, пока отзыв опубликуют.
Если он окажется среди первых десяти, вы получите 30 бонусов на Карту Любимого Покупателя. Можно писать неограниченное количество отзывов к разным покупкам – мы начислим бонусы за каждый, опубликованный в первой десятке.
Правила начисления бонусов
Если он окажется среди первых десяти, вы получите 30 бонусов на Карту Любимого Покупателя. Можно писать неограниченное количество отзывов к разным покупкам – мы начислим бонусы за каждый, опубликованный в первой десятке.
Правила начисления бонусов
Книга «Мои любимые прописи. Рисунки по точкам и клеткам. Рабочая тетрадь дошкольника» есть в наличии в интернет-магазине «Читай-город» по привлекательной цене. Если вы находитесь в Москве, Санкт-Петербурге, Нижнем Новгороде, Казани, Екатеринбурге, Ростове-на-Дону или любом другом регионе России, вы можете оформить заказ на книгу Евгения Ищук «Мои любимые прописи. Рисунки по точкам и клеткам. Рабочая тетрадь дошкольника» и выбрать удобный способ его получения: самовывоз, доставка курьером или отправка почтой. Чтобы покупать книги вам было ещё приятнее, мы регулярно проводим акции и конкурсы.
Работа с блокнотами Jupyter в Visual Studio Код
Редактировать
Jupyter (ранее IPython Notebook) — это проект с открытым исходным кодом, который позволяет легко комбинировать текст Markdown и исполняемый исходный код Python на одном холсте, называемом блокнотом . Visual Studio Code поддерживает работу с Jupyter Notebook как изначально, так и через файлы кода Python. В этом разделе рассматривается встроенная поддержка, доступная для ноутбуков Jupyter, и демонстрируется, как:
- Создание, открытие и сохранение блокнотов Jupyter
- Работа с ячейками кода Jupyter
- Просмотр, проверка и фильтрация переменных с помощью обозревателя переменных и средства просмотра данных
- Подключиться к удаленному серверу Jupyter
- Отладка ноутбука Jupyter
Настройка среды
Для работы с Python в Jupyter Notebooks необходимо активировать среду Anaconda в VS Code или другую среду Python, в которой установлен пакет Jupyter.
Чтобы выбрать среду, используйте Python: выберите команду Interpreter из палитры команд (⇧⌘P (Windows, Linux Ctrl+Shift+P)).После активации соответствующей среды вы можете создать и открыть блокнот Jupyter, подключиться к удаленному серверу Jupyter для запуска ячеек кода и экспортировать блокнот Jupyter в виде файла Python.
Workspace Trust
Приступая к работе с Notebook, вы должны убедиться, что работаете в надежной рабочей области. В блокноты можно внедрить вредоносный код, а функция Workspace Trust позволяет указать, какие папки и их содержимое должны разрешать или запрещать автоматическое выполнение кода.
Если вы попытаетесь открыть записную книжку, когда VS Code находится в ненадежной рабочей области с ограниченным режимом, вы не сможете выполнять ячейки, а расширенные выходные данные будут скрыты.
Создать или открыть блокнот Jupyter
Блокнот Jupyter можно создать, выполнив команду Create: New Jupyter Notebook из палитры команд (⇧⌘P (Windows, Linux Ctrl+Shift+P)) или создав новый файл . ipynb
в вашей рабочей области.
Затем выберите ядро с помощью средства выбора ядра в правом верхнем углу.
После выбора ядра средство выбора языка, расположенное в правом нижнем углу каждой ячейки кода, автоматически обновится до языка, поддерживаемого ядром.
Если у вас есть Jupyter Notebook, вы можете открыть его, щелкнув файл правой кнопкой мыши и открыв его с помощью VS Code или с помощью Проводника VS Code.
Запуск ячеек
Если у вас есть блокнот, вы можете запустить ячейку кода, используя значок Выполнить слева от ячейки, и результат появится непосредственно под ячейкой кода.
Вы также можете использовать сочетания клавиш для запуска кода. В командном режиме или режиме редактирования используйте Ctrl+Enter, чтобы запустить текущую ячейку, или Shift+Enter, чтобы запустить текущую ячейку и перейти к следующей.
Вы можете запустить несколько ячеек, выбрав Выполнить все , Выполнить все выше или Выполнить все ниже .
Сохраните блокнот Jupyter
Вы можете сохранить блокнот Jupyter с помощью сочетания клавиш Ctrl+S или Файл > Сохранить
Экспорт Jupyter Notebook
Вы можете экспортировать Jupyter Notebook в виде файла Python ( .py
), файла PDF или файла HTML. Для экспорта выберите действие Экспорт на главной панели инструментов. Затем вам будет представлен раскрывающийся список параметров формата файла.
Примечание: Для экспорта в PDF у вас должен быть установлен TeX. Если вы этого не сделаете, вы будете уведомлены о том, что вам необходимо установить его, когда вы выберете вариант PDF. Кроме того, имейте в виду, что если в вашем блокноте есть выходные данные только в формате SVG, они не будут отображаться в PDF-файле. Чтобы иметь графику SVG в PDF, либо убедитесь, что ваш вывод включает формат изображения, отличный от SVG, либо вы можете сначала экспортировать в HTML, а затем сохранить как PDF с помощью браузера.
Работа с ячейками кода в редакторе блокнота
Редактор блокнота упрощает создание, редактирование и запуск ячеек кода в блокноте Jupyter.
Создать ячейку с кодом
По умолчанию в пустой записной книжке будет пустая ячейка с кодом, с которой вы начнете, а в существующей записной книжке она будет размещена внизу. Добавьте свой код в пустую ячейку кода, чтобы начать.
msg = "Привет, мир" печать (сообщение)
Код режимов ячеек
При работе с ячейками кода ячейка может находиться в трех состояниях: невыбранная, командный режим и режим редактирования. Текущее состояние ячейки обозначается вертикальной чертой слева от ячейки кода и границы редактора. Если полоса не видна, ячейка не выбрана.
Когда ячейка выбрана, она может находиться в двух разных режимах. Это может быть в командном режиме или в режиме редактирования. Когда ячейка находится в командном режиме, ею можно управлять и принимать команды клавиатуры. Когда ячейка находится в режиме редактирования, содержимое ячейки (код или Markdown) можно изменить.
Когда ячейка находится в командном режиме, слева от ячейки появляется сплошная вертикальная полоса.
Когда вы находитесь в режиме редактирования, сплошная вертикальная полоса обрамляется рамкой вокруг редактора ячеек.
Чтобы перейти из режима редактирования в командный режим, нажмите клавишу Esc. Чтобы перейти из командного режима в режим редактирования, нажмите клавишу Enter. Вы также можете использовать мышь, чтобы изменить режим , щелкнув вертикальную полосу слева от ячейки или вне области кода/уценки в ячейке кода.
Добавление дополнительных ячеек кода
Ячейки кода можно добавить в Блокнот с помощью основной панели инструментов, панели инструментов добавления ячейки (отображаемой при наведении) и с помощью команд клавиатуры.
Использование значков «плюс» на главной панели инструментов и панели инструментов при наведении курсора на ячейку добавит новую ячейку непосредственно под текущей выбранной ячейкой.
Когда кодовая ячейка находится в командном режиме, клавиша A может использоваться для добавления ячейки выше, а клавиша B может использоваться для добавления ячейки ниже выбранной ячейки.
Выберите ячейку кода
Выбранную ячейку кода можно изменить с помощью мыши, клавиш со стрелками вверх/вниз на клавиатуре и клавиш J (вниз) и K (вверх). Чтобы использовать клавиатуру, ячейка должна находиться в командном режиме.
Выбор нескольких ячеек кода
Чтобы выбрать несколько ячеек, начните с одной ячейки в выбранном режиме. Если вы хотите выбрать последовательные ячейки, удерживайте нажатой клавишу Shift и щелкните последнюю ячейку, которую хотите выделить. Если вы хотите выделить любую группу ячеек, удерживайте нажатой клавишу Ctrl и щелкните ячейки, которые вы хотите добавить к своему выбору.
Выбранные ячейки будут обозначены заполненным фоном.
Выполнение одной ячейки кода
После добавления кода вы можете запустить ячейку, используя значок Выполнить слева от ячейки, и результат будет отображаться под ячейкой кода.
Вы также можете использовать сочетания клавиш для запуска выбранной ячейки кода. Ctrl+Enter запускает текущую выделенную ячейку, Shift+Enter запускает текущую выделенную ячейку и вставляет новую ячейку сразу под ней (фокус перемещается на новую ячейку), а Alt+Enter запускает текущую выделенную ячейку и вставляет новую ячейку сразу под ней (фокус остается в текущей ячейке). Эти сочетания клавиш можно использовать как в командном режиме, так и в режиме редактирования.
Запуск нескольких ячеек кода
Запуск нескольких ячеек кода можно выполнить разными способами. Вы можете использовать двойную стрелку на главной панели инструментов редактора записной книжки, чтобы запустить все ячейки в записной книжке, или значки «Выполнить » со стрелками направления на панели инструментов ячейки, чтобы запустить все ячейки выше или ниже текущей ячейки кода.
Перемещение ячейки кода
Перемещение ячеек вверх или вниз в записной книжке можно выполнить с помощью перетаскивания. Для ячеек кода область перетаскивания находится слева от редактора ячеек, как показано ниже. Для отображаемых ячеек Markdown вы можете щелкнуть в любом месте, чтобы перетащить ячейки.
Чтобы переместить несколько ячеек, вы можете использовать одни и те же области перетаскивания в любой ячейке, включенной в выборку.
Вы также можете использовать сочетания клавиш Alt+Стрелка для перемещения одной или нескольких выделенных ячеек.
Удалить ячейку кода
Удалить ячейку кода можно с помощью значка Удалить на панели инструментов ячейки кода или с помощью сочетания клавиш dd, когда выбранная ячейка кода находится в командном режиме.
Отменить последнее изменение
Вы можете использовать клавишу z, чтобы отменить предыдущее изменение, например, если вы сделали случайное редактирование, вы можете отменить его до предыдущего правильного состояния, или если вы случайно удалили ячейку, вы можете восстановить ее. .
Переключение между кодом и уценкой
Редактор записной книжки позволяет легко переключать ячейки кода между уценкой и кодом. Выбор средства выбора языка в правом нижнем углу ячейки позволит вам переключаться между Markdown и, если применимо, любым другим языком, поддерживаемым выбранным ядром.
Вы также можете использовать клавиатуру для изменения типа ячейки. Когда ячейка выбрана и находится в командном режиме, клавиша M переключает тип ячейки на Markdown, а клавиша Y переключает тип ячейки на код.
После установки Markdown вы можете ввести содержимое в формате Markdown в ячейку кода.
Для отображения ячеек Markdown можно установить флажок на панели инструментов ячеек или использовать сочетания клавиш Ctrl+Enter и Shift+Enter.
Очистить выходные данные или перезапустить/прервать работу ядра
Если вы хотите очистить все выходные данные ячеек кода или перезапустить/прервать работу ядра, вы можете сделать это с помощью главной панели инструментов Notebook Editor.
Включить/выключить нумерацию строк
В командном режиме вы можете включить или выключить нумерацию строк в одной ячейке кода с помощью клавиши L.
Чтобы переключить нумерацию строк для всей записной книжки, используйте Shift+L в командном режиме для любой ячейки.
Содержание
Для навигации по записной книжке откройте проводник на панели действий. Затем откройте вкладку Outline на боковой панели.
Примечание: По умолчанию в схеме отображается только Markdown. Чтобы отобразить ячейки кода, включите следующий параметр: Notebook > Outline: Show Code Cells .
Поддержка IntelliSense в редакторе Jupyter Notebook
В окне редактора Python Jupyter Notebook есть полный набор функций IntelliSense — завершение кода, списки элементов, краткая информация о методах и подсказки по параметрам. Вы можете так же продуктивно печатать в окне редактора блокнота, как и в редакторе кода.
Обозреватель переменных и средство просмотра данных
В записной книжке Python можно просматривать, проверять, сортировать и фильтровать переменные в текущем сеансе Jupyter. Выбрав значок Variables на главной панели инструментов после запуска кода и ячеек, вы увидите список текущих переменных, который будет автоматически обновляться по мере использования переменных в коде. Панель переменных откроется в нижней части записной книжки.
Средство просмотра данных
Для получения дополнительной информации о ваших переменных вы также можете дважды щелкнуть строку или использовать кнопку Показать переменную в средстве просмотра данных рядом с переменной для более подробного просмотра переменной в средстве просмотра данных.
Фильтрация строк
Фильтрация строк в средстве просмотра данных может быть выполнена путем ввода текстового поля в верхней части каждого столбца. Введите строку, которую вы хотите найти, и будет найдена любая строка, содержащая эту строку в столбце:
Если вы хотите найти точное совпадение, поставьте перед фильтром ‘=’:
Более сложную фильтрацию можно выполнить, введя регулярное выражение:
Сохранение графиков
Чтобы сохранить график из блокнота , просто наведите указатель мыши на результат и выберите значок Сохранить в правом верхнем углу.
Примечание: Существует поддержка рендеринга графиков, созданных с помощью matplotlib и Altair.
Отличие пользовательского ноутбука
Под капотом Jupyter Notebooks находятся файлы JSON. Сегменты в файле JSON отображаются как ячейки, состоящие из трех компонентов: ввода, вывода и метаданных. Сравнивать изменения, сделанные в блокноте с помощью сравнения на основе строк, сложно и трудно анализировать. Богатый редактор различий для блокнотов позволяет легко просматривать изменения для каждого компонента ячейки.
Вы даже можете настроить, какие типы изменений вы хотите отображать в своем представлении сравнения. В правом верхнем углу выберите элемент дополнительного меню на панели инструментов, чтобы указать, какие компоненты ячейки вы хотите включить. Входные различия всегда будут отображаться.
Чтобы узнать больше об интеграции Git с VS Code, посетите страницу Управление версиями в VS Code.
Отладка блокнота Jupyter
Существует два разных способа отладки блокнота Jupyter: более простой режим, называемый «Выполнение построчно», и режим полной отладки.
Примечание: Для обеих этих функций требуется ipykernel 6+. См. эту вики-страницу для получения подробной информации об установке или обновлении ipykernel.
Запуск по строке
Запуск по строке позволяет выполнять ячейку по одной строке за раз, не отвлекаясь на другие функции отладки VS Code. Для начала выберите Выполнить по строке Кнопка на панели инструментов ячейки:
Используйте эту же кнопку, чтобы перейти на одно утверждение. Вы можете выбрать кнопку ячейки Stop , чтобы остановить раньше, или кнопку Continue на панели инструментов, чтобы продолжить работу до конца ячейки.
Ячейка отладки
Если вы хотите использовать полный набор функций отладки, поддерживаемых в VS Code, таких как точки останова и возможность перехода к другим ячейкам и модулям, вы можете использовать полный отладчик VS Code.
- Начните с установки любых необходимых вам точек останова, щелкнув левое поле ячейки записной книжки.
- Затем выберите кнопку Debug Cell в меню рядом с кнопкой Run . Это запустит ячейку в сеансе отладки и приостановит ваши точки останова в любом выполняемом коде, даже если он находится в другой ячейке или файле
. py
. - Вы можете использовать представление отладки, консоль отладки и все кнопки на панели инструментов отладки, как обычно в VS Code.
Поиск по записной книжке
Вы можете выполнять поиск по kbstyle (Ctrl/Cmd + F) по всей записной книжке или по частям записной книжки, отфильтровав параметры поиска. При поиске в блокноте щелкните параметр «Фильтр» (значок воронки), чтобы выполнить поиск по:
- Ввод в ячейку Markdown ( Источник Markdown )
- Вывод ячейки Markdown ( Rendered Markdown )
- Ввод кода ячейки ( Источник кода ячейки )
- Вывод кодовой ячейки ( Вывод ячейки )
Поиски в блокноте по умолчанию являются фильтрованными входными данными ячеек.
Подключение к удаленному серверу Jupyter
Вы можете перенести интенсивные вычисления в Jupyter Notebook на другие компьютеры, подключившись к удаленному серверу Jupyter. После подключения ячейки кода запускаются на удаленном сервере, а не на локальном компьютере.
Для подключения к удаленному серверу Jupyter:
Откройте кнопку выбора ядра в верхней правой части ноутбука (или выполните команду Notebook: Select Notebook Kernel на палитре команд).
Выберите параметр Existing Jupyter Server , чтобы подключиться к существующему серверу Jupyter.
Чтобы подключиться к существующему серверу в первый раз, выберите Введите URL-адрес работающего сервера Jupyter .
При появлении запроса Введите URL-адрес работающего сервера Jupyter , укажите URI сервера (имя хоста) с токеном аутентификации, включенным в параметр URL-адреса
?token=
. (Если вы запускаете сервер в терминале VS Code с включенным токеном аутентификации, URL-адрес с токеном обычно появляется в выходных данных терминала, откуда вы можете его скопировать. ) Кроме того, вы можете указать имя пользователя и пароль после предоставления URI.
Примечание: Для дополнительной безопасности Microsoft рекомендует настроить сервер Jupyter с учетом мер предосторожности, таких как поддержка SSL и токенов. Это помогает гарантировать, что запросы, отправляемые на сервер Jupyter, аутентифицируются, а соединения с удаленным сервером шифруются. Инструкции по защите сервера ноутбуков см. в документации Jupyter.
09.01.2023
Оживите свой ноутбук Jupyter с помощью интерактивных виджетов | Семи Коэн
Как создавать динамические информационные панели с помощью ipywidgets
Традиционно каждый раз, когда вам нужно изменить выходные данные ячеек записной книжки, вам нужно изменить код и перезапустить затронутые ячейки. Это может быть громоздким, неэффективным и подверженным ошибкам, а в случае нетехнического пользователя это может быть даже невыполнимо. Здесь в игру вступают ipywidgets: они могут быть встроены в блокнот и предоставлять удобный интерфейс для сбора пользовательского ввода и просмотра влияния изменений на данные/результаты без необходимости взаимодействия с кодом; ваши блокноты могут быть преобразованы из статических документов в динамические информационные панели — идеально для демонстрации вашей истории данных!
⚠️ Область действия: Ресурсы ipywidgets ограничены, и очень немногие учебные пособия либо неполные, либо сосредоточены на функции/декораторе
взаимодействия
. Это полное руководство о том, как получить полный контроль над виджетами для создания мощных информационных панелей.Мы начнем с основ: добавим виджет и объясним, как работают события, и постепенно разработаем информационную панель.
Я буду вести вас шаг за шагом, опираясь на примеры по ходу дела.
Что такое виджет?
Если вы когда-либо создавали графический интерфейс пользователя (GUI), то вы уже знаете, что такое виджет. Но давайте все же дадим краткое определение:
Виджет — это элемент графического интерфейса, такой как кнопка, раскрывающийся список или текстовое поле, который находится в браузере и позволяет нам управлять кодом и данными, реагируя на события и вызывая указанные обработчики.
Эти элементы графического интерфейса можно собирать и настраивать для создания сложных информационных панелей.
Демонстрация: несколько самых популярных виджетовВ этой статье мы увидим некоторые из них в действии.
Готов? 🏁
Чтобы начать пользоваться библиотекой нам необходимо установить расширение ipywidgets . При использовании conda введите в терминал следующую команду:
conda install -c conda-forge ipywidgets
Для pip это будет двухэтапный процесс: 1. install и 2. enable:
pip install ipywidgetsjupyter nbextension включить --py widgetsnbeextension
Добавление виджета
Чтобы включить виджеты в записную книжку, мы должны импортировать модуль, как показано ниже:
импортировать ipywidgets как виджеты
Чтобы добавить ползунок, мы можем определить минимальное и максимальное значения, интервал размер (шаг), описание и начальное значение:
widgets. IntSlider(Демонстрация: Слайдер
min=0,
max=10,
step=1,
description='Slider:',
value=3
)
Отображение
Функция display()
отображает объект виджета во входной ячейке.
Первый импорт:
из IPython.display import display
Затем передайте виджет в качестве параметра функции display():
slider = widgets.IntSlider()
display(slider)
Получение/установка его значения
Чтобы прочитать значение виджета, мы запросим его свойство value
. Точно так же мы можем установить значение виджета:
Связывание двух виджетов
Мы можем синхронизировать значения двух виджетов с помощью функции jslink()
.
slider = widgets.IntSlider()Демонстрация: связывание
text = widgets.IntText()
display(slider, text)widgets.jslink((slider, 'value'), (text, 'value'))
виджетов List
Полный список виджетов можно найти в документации или выполнить следующую команду:
print(dir(widgets))
Виджеты могут реагировать на события, возникающие при взаимодействии с ними пользователя. Простой пример — нажатие на кнопку — мы ожидаем выполнения действия.
Давайте посмотрим, как это работает…
В зависимости от своих особенностей каждый виджет предоставляет различные события. Обработчик события будет выполняться каждый раз при запуске события.
Обработчик событий — это функция обратного вызова в ответ на событие, которая работает асинхронно и обрабатывает полученные входные данные.
Здесь мы создадим простую кнопку с именем btn
. Метод on_click
вызывается при нажатии кнопки.
Наш обработчик события btn_eventhandler
выведет короткое сообщение с заголовком кнопки — обратите внимание, что входным аргументом обработчика obj
является сам объект кнопки, который позволяет нам получить доступ к ее свойствам.
Чтобы связать событие с обработчиком, мы назначаем последний методу кнопки on_click
.
btn = widgets. Button(description='Medium')Демонстрация: обработчик событий кнопки
display(btn)def btn_eventhandler(obj):
print('Привет от кнопки {}!'.format(obj.description))btn.on_click(btn_eventhandler )
Что приведет нас к следующему разделу, так это то, что выходные данные появляются в той же ячейке , что и сама кнопка. Итак, давайте перейдем к тому, как мы можем добавить больше гибкости нашему ноутбуку!
В этом разделе мы рассмотрим, как использовать виджеты для управления кадром данных . Я выбрал образец набора данных «Количество иностранных посетителей Лондона», который показывает общее количество посетителей Лондона в отношении ночей, посещений и расходов с разбивкой по годам, кварталам, целям, продолжительности, способу и стране.
Первоначально мы получим данные и загрузим их в фрейм данных:
import pandas as pddf_london.sample(5)
import numpy as npurl = "https://data.london.gov.uk/download/number-international-visitors-london /b1e0f953-4c8a-4b45-95f5-e0d143d5641e/international-visitors-london-raw. csv"df_london = pd.read_csv(url)
Предположим, мы хотим отфильтровать кадр данных по году . Сначала мы определим раскрывающийся список и заполним его списком уникальных значений года.
Чтобы сделать это, мы создадим общую функцию unique_sorted_values_plus_ALL
, которая будет находить уникальные значения, сортировать их, а затем добавлять элемент ALL
в начале, чтобы пользователь мог удалить фильтр.
ALL = 'ALL'def unique_sorted_values_plus_ALL(array):
unique = array.unique().tolist()
unique.sort()
unique.insert(0, ALL)
return unique
Теперь мы инициализируем выпадающий список:
выпадающий_год = виджеты. Выпадающий список (параметры = уникальные_отсортированные_значения_плюс_ВСЕ (df_london.year))
Виджет раскрывающегося списка предоставляет метод наблюдения
, который принимает функцию, которая будет вызываться при изменении значения раскрывающегося списка. Таким образом, затем мы создадим обработчик наблюдателя для фильтрации фрейма данных по выбранным значениям — обратите внимание, что входной аргумент обработчика change
содержит информацию о произошедших изменениях, что позволяет нам получить доступ к новому значению
. ( изменить.новый
).
Если новое значение ВСЕ
убираем фильтр, иначе применяем:
def dropdown_year_eventhandler(change):
if (change.new == ALL):
display(df_london)
else:
display(df_london[df_london.year == change.new])
Затем мы привяжем обработчик в раскрывающемся списке:
dropdown_year.observe(dropdown_year_eventhandler, names='value')Использование раскрывающегося списка для фильтрации фрейма данных
Пока все хорошо, но результат всех запросов , накапливающий в этой самой ячейке; то есть, если мы выберем новый год из раскрывающегося списка, новый фрейм данных будет отображаться под первым в той же ячейке.
Желаемое поведение, однако, состоит в том, чтобы обновлять содержимое фрейма данных каждый раз.
Захват вывода виджета
Решение этой проблемы состоит в захвате вывода ячейки в виджете особого типа, а именно Output
, а затем его отображении в другой ячейке.
Мы немного изменим код, чтобы:
- создать новый экземпляр
Output
output_year = widgets.Output()
- вызвать
clear_output
в обработчике событий для очистки предыдущего выбора на каждой итерации и захвата вывода кадра данных в блокес
.
def dropdown_year_eventhandler(change):
output_year.clear_output()
with output_year:
display(df_london[df_london.year == change.new])
Затем мы отобразим вывод в новой ячейке:
display (output_year)
Вот как это работает:
Демонстрация: захват вывода в новой ячейкеКак видите, вывод отображается в новой ячейке, и фильтрация работает как положено! 👍
Продолжая предыдущий пример, предположим, что мы также хотим отфильтровать по цель .
Если мы продолжим и добавим еще один раскрывающийся список, мы быстро поймем, что фрейм данных отвечает на фильтр только раскрывающимся списком, который был недавно изменен. Что нам нужно сделать, так это связать вместе, чтобы он мог работать с обоими значениями (то есть с годом и целью).
Давайте посмотрим, как это должно работать:
Во-первых, нам нужен общий вывод для обоих раскрывающихся списков:
output = widgets.Output()
Вот два раскрывающихся списка:
dropdown_year = widgets.Dropdown(options = unique_sorted_values_plus_ALL(df_london .year))dropdown_purpose = widgets.Dropdown(options = unique_sorted_values_plus_ALL(df_london.purpose))
Затем мы создаем новую функцию, common_filtering
, которая будет вызываться обоими обработчиками событий. Эта функция применит фильтр к фрейму данных как для 9-го года,0039 И цель:
Мы очищаем вывод, затем проверяем, является ли какое-либо из значений ALL
, и в этом случае мы считаем, что соответствующий фильтр удален. Когда присутствуют оба фильтра, в операторе else
мы применяем операцию и
к обоим фильтрам. Наконец, мы фиксируем вывод:
def common_filtering(год, цель):
output.clear_output()if (год == ВСЕ) & (цель == ВСЕ):
common_filter = df_london
elif (год == ВСЕ):
common_filter = df_london[df_london.цель == цель]
elif (цель == ВСЕ):
common_filter = df_london[df_london.year == год]
еще:
common_filter = df_london[ (df_london.year == year) &
(df_london.purpose == цель)]с выводом:
display(common_filter)
Мы вносим поправки в обработчики событий, чтобы они вызывали функцию common_filtering
и передавали изменение . новое значение
, а также текущее значение
другого раскрывающегося списка:
def dropdown_year_eventhandler(change):
common_filtering(change.new, dropdown_purpose.value)def dropdown_purpose_eventhandler(change):
common_filtering(dropdown_year. value, change.new)
Мы связываем обработчики в выпадающие списки, и все!
dropdown_year.observe(
dropdown_year_eventhandler, имена='значение')dropdown_цель.observe(
dropdown_цель_eventhandler, имена='значение')
Фрагмент кода:
Фильтрация фрейма данных на основе двух значенийВот демонстрация:
Демонстрация: Фильтрация фрейма данных на основе двух значенийНа данный момент мы заложили основу для нашей информационной панели, отфильтровав и отобразив данные лондонского набора данных. Мы продолжим раскрашивать числовые значения в зависимости от выбранного пользователем значения.
Полезным числовым виджетом является BoundedFloatText
; мы дадим ему min
, max
и начальное значение
, и инкрементное шаг
.
bounded_num = widgets.BoundedFloatText(
min=0, max=100000, value=5, step=1)
Чтобы раскрасить ячейки фрейма данных, мы определим эту функцию:
def color_ge_value(значение, сравнение) :
if value >= сравнение:
return 'color: red'
else:
return 'color: black'
Теперь мы минимально изменим функцию common_filtering
на:
- добавим новый входной параметр
num
:
def common_filtering(year, target, num):
- примените стиль, вызвав функцию
color_ge_value
для трех числовых столбцов:
с выводом:
display(common_filter
. style.applymap( 90 : color_ge_value(x, num),
subset=['посещения','расходы', 'ночи']))
Существующие обработчики событий необходимо настроить для передачи bounded_num.value
:
def dropdown_year_eventhandler( изменение):
common_filtering(change.new, dropdown_purpose.value,
bounded_num.value)def dropdown_purpose_eventhandler(change):
common_filtering(dropdown_year.value, change.new,
bounded_num.value)
И, наконец, мы подключим обработчик событий нового виджета:
defbounded_num_eventhandler(change):
common_filtering(dropdown_year.value, dropdown_purpose.value,
change.new)bounded_num.observe(bounded_num_eventhandler, names='value')
Фрагмент кода:
Цветовые значения фрейма данныхВот демонстрация:
Демонстрация: Цветовые значения фрейма данныхГрафик
Далее мы добавим новый график для построения базовой одномерной плотности количества посещений (KDE → Оценка плотности ядра). Мы будем использовать seaborn, поэтому давайте импортируем библиотеки:
import seaborn as sns
import matplotlib.pyplot as plt
Продолжая предыдущий вариант использования, мы захватим график в новую выходную переменную:
plot_output = widgets. Выход()
Теперь мы изменим функцию common_filtering
, чтобы построить новую диаграмму:
- сначала мы очистим вывод:
plot_output.clear_output()
- , а затем вызовем метод
seaborn by40kdeplot количество посещений:
с plot_output:
sns.kdeplot(common_filter['visits'], shadow=True)
plt.show()
Наконец, единственное, что нам нужно сделать, это отобразить выходные данные в новая ячейка:
display(output)
display(plot_output)
Фрагмент кода:
Управление графикомВот демонстрация:
Демонстрация: Управление графикомДо сих пор наш пользовательский интерфейс функционировал, но занимал много места .
Сначала мы расположим виджеты ввода по горизонтали. HBox
будет добавлять к нему виджеты по одному слева направо:
input_widgets = widgets.HBox(HBox
[dropdown_year, dropdown_цель, bounded_num])display(input_widgets)
Далее мы создадим контейнер для вывода. Вкладка
отлично подходит для этого. На 1-й вкладке будет размещен фрейм данных, а на 2-й - график.
tab = widgets.Tab([output, plot_output])Tab
tab.set_title(0, 'Исследование набора данных')
tab.set_title(1, 'KDE Plot')display(tab)
Наконец, мы сложим виджеты ввода и вкладка друг над другом с помощью VBox
.
панель инструментов = widgets.VBox([input_widgets, tab])display(панель инструментов)VBox
Он кажется немного «замятым», поэтому в качестве последнего шага мы отполируем нашу панель инструментов, добавив немного места. Мы определим Layout
с отступом 50 пикселей между элементами.
item_layout = widgets.Layout(margin='0 0 50px 0')
Мы будем вызывать этот макет для каждого элемента:
input_widgets = widgets.HBox(
[dropdown_year, dropdown_цель, bounded_num],
layout=item_layout) tab = widgets.Tab([output, plot_output],
layout=item_layout)
и та да…. Наша готовая панель инструментов:
DashboardFinal demo
Demo: Final DashboardPS : В целях презентации в некоторых из этих демонстраций я использовал подмножество набора данных, т.е.:
df_london = df_london .sample(250)
.
Есть несколько сторонних виджетов, которые вы также можете использовать, самые популярные из них:
• 2-D диаграммы: bqplot
• 3-D визуализация: pythreejs и ipyvolume
• Mapping: ipyleaflet и gmaps.
Вы также можете создавать свои собственные виджеты! Для получения дополнительной информации посмотрите здесь.
Мы видели довольно широкий спектр виджетов в действии, но здесь мы по-прежнему касаемся только поверхности — мы можем создавать действительно сложные и обширные графические интерфейсы, используя ipywidgets.