Рисунки по клеточкам в тетради самые красивые: Рисунки по клеточкам на тетрадном листе
Делаем графики в Jupyter Notebook красивыми и информативными | Бипин П.
Визуализация данных
Настройка matplotlib.pyplot для улучшения графиков мир, в котором мы живем, например, правительства, крупные корпорации, политики, бизнес-магнаты (вы называете это) все находятся под влиянием данных беспрецедентным образом. Следовательно, визуализация данных стала играть ключевую роль в повседневных делах, чем когда-либо прежде. Следовательно, приобретение навыков в этой области приобретает все большее значение.
В мире науки о данных Python является предпочтительным языком программирования (бесспорным лидером в науке о данных). Следовательно, мы будем рассматривать Matplotlib для построения графиков. Matplotlib — это обширная библиотека для создания статических, анимированных и интерактивных визуализаций на Python. matplotlib.pyplot — это набор командных функций, которые позволяют matplotlib работать как MATLAB. pyplot Функцию можно использовать для создания фигуры, создания области построения на фигуре, построения некоторых линий в области построения, украшения графика метками и т. д. С помощью pyplot можно быстро создать визуализацию.
Давайте создадим код в блокноте Jupyter, чтобы создать нормальное распределение. Для непосвященных нормальное распределение — это непрерывное распределение вероятностей для действительнозначной случайной величины. Его можно легко определить по колоколообразной кривой (функция плотности вероятности) и ее симметрии.
импортировать numpy как npГрафик 1 : Нормальное распределение | Фото ©iambipin
импортировать matplotlib.pyplot как plt
импортировать scipy.stats как статистику
mu = 0
std = 1
x = np.linspace (start = -4, stop = 4, num = 100)
y = stats.norm.pdf(x, mu, std)
plt.plot(x, y)
plt.show()
Код создает простой график нормального распределения со средним значением = 0 и стандартным отклонением = 1. Поскольку наша основная задача — сделать графики более красивыми, объяснение математических аспектов кода будет довольно кратким. np. linspace() возвращает равномерно распределенные выборки (количество выборок равно num) в течение определенного интервала [начало, стоп]. scipy.stats.norm() возвращает обычную непрерывную случайную величину. scipy.stats.norm.pdf() вычисляет PDF в любой точке для заданного значения среднего (mu) и стандартного отклонения (std).
График кажется слишком обычным и пресным. Нет ни ярлыков, ни заголовков, чтобы предоставить какую-то ценную информацию третьему лицу. Нет сетки, чтобы легко идентифицировать и сопоставлять значения. Размер фигурки также немного мал, на мой вкус.
Давайте сделаем графики красивыми, используя различные функции pyplot.
Добавление линий сетки
Сетки помогают легко идентифицировать и сопоставлять значения на графике. plt.grid() настраивает линии сетки. Он показывает сетку с настройками по умолчанию.
plt.grid()
Простой код для создания фигуры выглядит следующим образом:
plt. show() Фото ©iambipin
plt.figure() создает новую фигуру. plt.axes() назначает оси новой фигуре и делает ее текущей осями (множественное число от оси). Фигуру Matplotlib можно рассматривать как единый контейнер, содержащий всю информацию об осях, графике, тексте и метках. Оси можно рассматривать как ограничивающую рамку с галочками и метками, которые будут содержать элементы графика визуализации. plt.show() отображает все фигуры и блокирует их, пока фигуры не будут закрыты
Давайте поэкспериментируем с различными аспектами сетка() . Начните с цвета сетки.
fig = plt.figure()Фото ©iambipin цвет к сетке. Необязательный параметр b принимает логические значения (True или False). Если установлено значение False, сетки исчезнут. Однако, если присутствуют какие-либо аргументы ключевого слова (например, альфа, цвет, ширина линии и т. д.), то b будет установлено значение True независимо от заданного значения b. Например, если приведенный выше фрагмент кода изменен:
ax = plt.axes()
plt.grid(b=True, color='r')
fig = plt.figure()
ax = plt.axes()
plt.grid(b=False, color = 'r')
На выходе будет тот же график с красной сеткой, как показано выше .
Для color можно использовать любую из следующих строк в качестве значений:
- Общие названия цветов, таких как красный, синий, коричневый, пурпурный и т. д.
color = ‘purple’ - шестнадцатеричный код цвета #RRGGBB со значениями от 00 до FF. Здесь R=красный, G=зеленый, B=синий
color = ‘#e3e3e3’ - Кортеж RGB со значениями от 0 до 1.
color = (0.6,0.9,0.2) - Оттенки серого со значениями от 0,0 до 1,0. По мере увеличения значения черные линии сетки тускнеют.
color = ‘0,9’ - Краткие коды цветов для RGB и CMYK. Здесь r: красный, g: зеленый, b: синий, c: голубой, m: пурпурный, y: желтый, k: черный.
color=’c’ - Имена цветов HTML. Вы можете найти больше названий цветов HTML здесь.
цвет = «помидор»
fig = plt.figure()Фото ©iambipin
ax = plt.axes()
plt.grid(b=True, color='aqua', alpha=0.3, linestyle='-.', linewidth=2)
Свойства различных аргументов ключевого слова в коде указаны ниже:
- альфа используется для изменения непрозрачности сетки. Нулевое значение альфы заставит сетку исчезнуть.
- стиль линии или ls установит стиль линий сетки. Подходящими значениями стиля линии являются «-», «-», «-.», «:», «», «сплошной», «пунктирный», «пунктирный», «штрихпунктирный» и т. д.
- ширина линии или lw определяет ширину линий сетки.
Примечание : Кривые или линии графика могут быть оформлены так же, как и сетка, с использованием тех же аргументов ключевого слова.
импортировать numpy как npФото ©iambipin
импортировать matplotlib.pyplot как plt
рис. .sin(x), color='Indigo', linestyle='--', linewidth=3)
plt.grid(b=True, color='aqua', alpha=0.3, linestyle='-.', linewidth =2)
plt.show()
Аргументы color и linestyle могут быть объединены для получения аргумента, не являющегося ключевым словом. Например, ‘c- -‘ эквивалентно настройке color=’cyan’, linestyle=’- -‘, как показано в коде ниже:
import numpy as npФото ©iambipin
import matplotlib.pyplot as plt
fig = plt.figure ()
ax = plt.axes()
x = np.linspace(0, 5, 100)
plt.plot(x, np.sin(x), 'c--', ширина линии=3)
plt. grid(b=True, color='aqua', alpha=0.3, linestyle='-.', linewidth=2)
plt.show()
Такое сочетание цвета и стиля линий не будет работать с grid() .
Главные и второстепенные линии сетки
Главные и второстепенные линии сетки можно показать, указав любое из трех значений параметра , который параметра plt. grid() . Три значения являются основными, второстепенными и обоими. Они говорят сами за себя, как следует из их названия. Значение major отображает основные линии сетки, а второстепенный отображает второстепенные линии сетки. Значение и одновременно отображает основные и второстепенные линии сетки.
импортировать numpy как npФото ©iambipin
импортировать matplotlib.pyplot как plt
x = np.linspace(0, 7, 100)
line1, = plt.plot(x, np.sin(x), label='sin')
line2, = plt.plot(x, np.cos(x), label='cos')
plt.legend(handles=[line1, line2], loc='нижний правый')
#основные линии сетки
plt. grid(b=True, which='major', color='grey', alpha=0.6, linestyle='dashdot', lw=1.5)
#второстепенные линии сетки
plt.minorticks_on()
plt.grid(b=True, which='minor', color='beige', alpha=0.8, ls='-', lw=1)
plt.show ()
plt. minorticks_on() отображает мелкие штрихи на осях. Недостатком является то, что это может снизить производительность.
Добавление меток для осей
Начните с добавления меток к осям x и y. matplotlib.pylot.xlabel() для добавления меток к оси x. Точно так же ylabel() для присвоения меток оси Y. Размер шрифта является аргументом ключевого слова текста matplotlib ( ** kwargs ) и используется для управления размером шрифтов меток.
plt.xlabel('x', fontsize=15)
plt.ylabel('PDF', fontsize=15)
Установка предела осей
Matplotlib устанавливает пределы осей по умолчанию, если пределы осей специально не указаны. Вы можете установить пределы, используя plt.xlim() и plt.ylim для установки пределов x и y соответственно.
Без ограничений по осям | Фото ©iambipinimport numpy as npС ограничениями по осям | Фото ©iambipin
import matplotlib. pyplot as plt
fig = plt.figure()
ax = plt.axes()
x = np.linspace(0, 5, 100)
plt.plot( x, np.sin(x), 'c--', linewidth=3)
plt.xlim(-1, 6)
plt.ylim(-1.25, 1.25)
plt.grid(b=True, color= 'aqua', alpha=0.3, linestyle='-.', linewidth=2)
plt.show()
Tick Parameters
Мы видели, как настраивать сетки. Тем не менее, существует метод plt.tick_params() , который может изменить внешний вид делений, меток делений и линий сетки в одной строке кода. Разве это не удобно и не мощно?
импортировать numpy как npФото ©iambipin
импортировать matplotlib.pyplot как plt
рис. .sin(x), 'c--', linewidth=3)
plt.xlim(-1, 6)
plt.ylim(-1,25, 1,25)
plt.tick_params(axis='both', direction='out', length=6, width=2, labelcolor='b', colors='r', grid_color='grey', grid_alpha=0.5)
plt. grid()
plt.show()
Аргумент axis указывает ось (‘x’, ‘y’ или ‘оба’), к которой должны применяться параметры. направление размещает деления внутри осей, вне осей или в обоих направлениях. Длина и ширина аргументов дают длину и ширину тика (в плавающей запятой). labelcolor назначает цвета меткам деления. colors Аргумент устанавливает цвет галочки и цвет метки. grid_color устанавливает цвет сетки, а grid_alpha устанавливает непрозрачность сетки. plt.tick_params() можно использовать для изменения важных свойств сетки, таких как grid_color (цвет) , grid_alpha (float) , grid_linewidth (float) и grid_linestyle (строка) .
Добавление легенды
Легенда — это формулировка на карте или диаграмме, объясняющая используемые в ней символы. plt.legend() метод помещает легенду на оси.
Когда на графике присутствует несколько строк, код немного отличается от обычного.
импортировать numpy как npФото ©iambipin
импортировать matplotlib.pyplot как plt
x = np.linspace(0, 7, 100)
line1, = plt.plot(x, np.sin(x), label='sin')
line2, = plt.plot(x, np.cos(x), label='cos')
plt.legend(handles=[line1, line2], loc='best')
plt.grid(b=True , color='aqua', alpha=0.6, linestyle='dashdot')
plt.show()
Положение легенды также можно изменить, установив соответствующие значения («внизу справа» , «нижний левый», «верхний правый», «верхний левый» и т. д.) до loc .
plt.legend(handles=[line1, line2], loc='нижний правый')Положение легенды изменено на нижнее правое положение | Фото ©iambipin
Давайте добавим все эти функции в наш код и посмотрим, как выглядит Plot 1 .
импортировать numpy как npГрафик 2 : Нормальное распределение | Фото ©iambipin
импортировать matplotlib.pyplot как plt
импортировать scipy.stats как statsmu = 0
std = 1
x = np. linspace (start = -4, stop = 4, num = 100)
y = stats .norm.pdf(x, mu, std)
plt.plot(x, y, label='PDF')
plt.xlabel('x', fontsize=15)
plt.ylabel('PDF', fontsize= 15)
plt.grid(b=True, which='major', color='DarkTurquoise', alpha=0.4, linestyle=':', linewidth=2)
plt.minorticks_on()
plt.grid(b=True, which='minor', color='beige', alpha=0.2, linestyle='-', linewidth=2)
plt.legend()
plt. show()
Сохранение рисунка в изображение
Один из нескольких способов сохранить график в виде изображения — щелкнуть правой кнопкой мыши график и выбрать параметр «Сохранить изображение как» (параметр по умолчанию в любом веб-браузере).
Фото ©iambipinДругой вариант — использовать метод plt.savefig(). Он сохраняет текущую фигуру в текущем рабочем каталоге.
plt.savefig('Normal Distribution.png')
Для проверки правильности сохранения изображения используется объект Image модуля IPython. display . Следующий код отобразит изображение.
из IPython.display import Image
Image('normal_distribution.png')
Увеличение размера рисунка
По умолчанию размер графика, отображаемого блокнотом Jupyter, довольно мал. Размер по умолчанию всего 640×480. Однако сохраненные изображения имеют еще меньшие размеры.
Фото ©iambipinСохраненный файл имеет размеры 433px * 288px. Давайте изменим настройки, чтобы иметь собственный размер графика. plt.rcParams[] предназначен для этой конкретной цели. Общий синтаксис выглядит следующим образом:
plt.rcParams['figure.figsize'] = [ширина, высота]
Matplotlib использует файлы конфигурации matplotlibrc для настройки всех видов свойств, которые мы называем «настройками rc» или « параметры rc’. Можно контролировать значения по умолчанию почти каждого свойства в Matplotlib: размер фигуры и DPI, ширину линии, цвет и стиль, оси, свойства осей и сетки, свойства текста и шрифта и так далее. Как только найден файл matplotlibrc , он не будет искать другие пути. Расположение текущего активного файла matplotlibrc можно увидеть, введя следующие команды:
import matplotlib
matplotlib.matplotlib_fname()
Преобразование в сантиметры
Здесь важно отметить, что figsize кортеж принимает значения в дюймах. Чтобы преобразовать в сантиметры (см), разделите значение на 2,54, так как 1 дюйм = 2,54 см.
plt.rcParams['figure.figsize'] = [10/2.54, 8/2.54]
Теперь попробуйте настроить размер Plot 2 с помощью rcParams.
импортировать numpy как npГрафик 3 : Нормальное распределение | Фото ©iambipin
импортировать matplotlib.pyplot как plt
импортировать scipy.stats как статистику
mu = 0
std = 1
x = np.linspace (start = -4, stop = 4, num = 100)
y = stats.norm.pdf(x, mu, std)
plt.plot(x, y, label='PDF')
plt.xlabel('x', fontsize=15)
plt.ylabel('PDF', fontsize=15)
plt. grid(b=True, color='DarkTurquoise', alpha=0.2, linestyle=':', linewidth=2)
plt.rcParams['figure.figsize'] = [10/2.54, 8/2.54]
plt.legend()
plt.show()
Настройка стиля
plt.style.use() можно использовать для переключения на простые в использовании стили рисования. Пакет стилей предоставляет широкий набор предустановленных стилей, что делает графики привлекательными, а их размеры больше.
plt.style.use('classic')
plt.style.available 9Команда 0012 перечисляет все различные стили, доступные для использования.
печать (plt.style.available) ['bmh', 'классический', 'dark_background', 'быстрый', 'пять тридцать восемь', 'ggplot', 'оттенки серого', 'морской яркий', 'морской дальтоник' , «морская-темная-палитра», «морская-темная», «морская-темная сетка», «морская-глубокая», «морская-приглушенная», «морская-блокнот», «морская-бумага», «морская-пастель» , 'морской постер', 'морской разговор', 'морской тикс', 'морской белоснежный', 'морской белоснежный', 'морской борн', 'Solarize_Light2', 'табло-дальтоник10', '_classic_test']
Предположим, если мы хотим иметь темный фон для сюжета, тогда plt. style.use(‘dark_background’) подойдет для этой цели.
импортировать numpy как npГрафик 4 : Нормальное распределение | Фото ©iambipin
импортировать matplotlib.pyplot как plt
импортировать scipy.stats как статистику
plt.style.use('dark_background')
mu = 0
std = 1
x = np.linspace(start=-4 , stop=4, num=100)
y = stats.norm.pdf(x, mu, std)
plt.plot(x, y, label='PDF')
plt.xlabel('x', fontsize= 15)
plt.ylabel('PDF', размер шрифта=15)
plt.grid(b=True, color='DarkTurquoise', alpha=0.2, linestyle=':', linewidth=2)
plt.legend()
plt.show()
Заключение
Matplotlib де-факто является библиотекой визуализации Python. Я рассмотрел все важные аспекты Pyplot, чтобы ваши графики в блокноте Jupyter выделялись. Я считаю, что информация, которой мы делимся здесь, сделает ваши сюжеты более значимыми и красивыми.
Визуализация данных меняется по мере того, как я печатаю. Как кто-то правильно сказал, единственное, что никогда не меняется, — это само изменение. Постоянство — это иллюзия. Появляется много новых инструментов, таких как Tableau, Bokeh, Plotly и т. д. Возможно, в будущем более многофункциональный и технически сложный инструмент может заменить Matplotlib в качестве инструмента номер один. А пока удачного кодирования!!!
Ссылки
- https://matplotlib.org/
- https://matplotlib.org/tutorials/introductory/pyplot.html
- https://matplotlib.org/tutorials/introductory/customizing.html
- https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.norm.html
- https://matplotlib.org/3.1.1/api/_as_gen/matplotlib.pyplot.xlabel.html
- https://matplotlib.org/3.1.1/api/_as_gen/matplotlib.pyplot.grid.html
- https://matplotlib.org/tutorials/intermediate/legend_guide.html
- https://matplotlib.org/tutorials/introductory/customizing.html#customizing-with-matplotlibrc-files
- https://matplotlib. org/api/_as_gen/matplotlib.axes.Axes.tick_params.html
- https://www.w3schools.com/colors/colors_names.asp
Обогатите свой блокнот Jupyter этими советами | by Zolzaya Luvsandorj
Photo by Shelby Deeter on UnsplashНабор технических инструментов
Практические советы по улучшению документации рабочего процесса
Одной из замечательных особенностей Jupyter Notebook (отныне Notebook) является возможность использовать ячейки уценки вместе с ячейками кода. Эти ячейки уценки позволяют нам документировать более выразительно и четко, чтобы будущим пользователям было легче понять рабочий процесс Блокнота. В этом посте я поделюсь несколькими своими советами по обогащению документации в ячейках уценки без установки каких-либо расширений.
Фото Елены Клоппенбург на UnsplashЕсли вы использовали Notebook, вы, вероятно, уже знакомы с основами Markdown. Если вам нужно освежить в памяти, вот минутное введение в Markdown и его часто используемый синтаксис:
#### Заголовки
# Заголовок 1
## Заголовок 2#### Стили
*Курсив*, **жирный**, _подчеркивание_, ~~зачеркнутый~~#### Гиперссылка
[гиперссылка](https ://www. markdownguide.org/)#### Таблица
| По умолчанию | Выровнено по левому краю | Выравнивание по центру | Выровнено по правому краю |
|---------|:--------------|:--------------:|------ --------:|
| По умолчанию | Слева | центр | Право |#### Прочие
* Маркированный элемент 1
* Маркированный подэлемент 1
* Маркированный элемент 2***
1. Заказанный элемент 1
1.1. Заказанный подпункт 1
2. Заказанный товар 2***
- [ ] Флажок не отмечен
- [x] Флажок установлен
Его визуализированный вывод:
Обновив основы, пришло время взглянуть на более сложные функции ячеек Markdown, чтобы обогатить документацию для улучшенная читаемость.
Большой кусок черно-белого текста может оттолкнуть от чтения. Один из способов обогатить черно-белый текст и улучшить его читаемость — добавить цвета для выделения и всплывающих ключевых частей. Вот три разных способа добавить цвет к тексту:
🎨 1.1. Цвет текста
Мы можем изменить цвет текста с помощью тега html
. Мы можем использовать имена цветов или шестнадцатеричный код цвета:
Пример: зеленый текст, *синий курсивный текст* и **красный полужирный текст**.
Если вы хотите узнать больше названий цветов, это может пригодиться. Если названия цветов не совсем отражают то, что вам нужно, вы можете изучить шестнадцатеричные цвета, чтобы получить доступ к более широкому диапазону параметров. Вот мой любимый ресурс для изучения шестнадцатеричных цветов.
🎨 1.2. Выделение текста
Мы также можем выделить текст с помощью тега html
:
Кроме того, мы также можем выделить текст.
Теперь легче привлечь внимание к выделенной части текста.
🎨 1.3. Use alerts
Наконец, мы можем отформатировать фон и цвет шрифта с помощью bootstrap alert, чтобы сделать текстовую документацию более привлекательной для чтения:
Пример текста, выделенного синим фоном.
Пример текста, выделенного зеленым фоном.
Пример текста, выделенного желтым фоном.
Пример текста, выделенного красным фоном.
Эти форматы красивый! Добавление цветов может сразу улучшить читабельность документации Notebook, выделяя ключевые моменты и делая документацию менее скучной. Таким образом, становится легче просмотреть и быстро получить основные моменты.
9m (y_i \ln(\hat p(y_i=1)) + (1-y_i) \ln(1-\hat p(y_i=1))) \end{equation}Если вы не знакомы с LaTeX , ознакомьтесь с этим руководством или этим, чтобы начать.
📍 2.2. Используйте кодовые блоки
Иногда полезно показывать ссылки на код в ячейках уценки вместо того, чтобы запускать их в ячейках кода. Мы можем использовать одиночные обратные кавычки `
, чтобы отобразить встроенный блок кода:
Если вы не установили textblob, вы можете установить его с помощью: `pip install texblob`.
Для большей части кода мы можем использовать тройные обратные кавычки ```
:
Если вы не установили библиотеки, вы можете установить их с помощью следующей команды:
```
conda install pandas, numpy, sklearn -y
pip install textblob
```
Если мы укажем имя языка после первой тройки `
, блок кода будет отформатирован красочно, где это применимо:
```python
{"минимум": 10, "максимум" ": 50, "имя": "оптимизатор"}
```
📍 2.
3. Используйте отступ кавычек Отступ — это еще один способ форматирования текста для улучшения читабельности. Мы можем добавить отступ с помощью >
:
Пример предложения без отступа здесь.
> **Примечание.** Текст с отступом.
«Изображение стоит тысячи слов».
Документация не всегда должна быть в словах. Изображения и другие медиа могут помочь нам передать идеи, которые иначе трудно выразить с помощью текста. Добавление соответствующих носителей — еще один отличный способ обогатить документацию необходимой информацией для будущих пользователей.
📷 3.1. Встраивание изображений, включая GIF-файлы
Мы можем добавлять изображения в ячейки уценки с помощью тега html
:
Pipeline, ColumnTransformer и FeatureUnion объяснили
Здесь, example.jpeg
сохраняется в той же папке, что и записная книжка. Мы можем изменить размер изображения, используя аргументы ширины
или высоты
. Например,
изменит размер отображаемого изображения до нужной ширины, сохраняя при этом соотношение ширины и высоты.
Если добавление диаграмм, диаграмм или других визуализаций данных в статичное изображение не совсем отражает то, что мы хотим передать, мы можем встроить GIF, анимированное изображение, используя точно такую же структуру синтаксиса:
Введение в Git для науки о данных
Путь к файлу также может быть веб-ссылкой:
📹 3.2. Встраивание видео
«Видео (одной минуты) стоит 1,8 миллиона слов».
Если GIF недостаточно, следующий уровень — использование видео. Мы можем использовать тег html для отображения видео:
Например, экран, записывающий, как выполнить задачу, сохраняя его как видео файл и встраивание видео в Блокнот может быть полезно для будущих пользователей.
⚪️3.3. Добавляйте фигуры и эмодзи
Длинный абзац простого текста может быть скучным и неинтересным для чтения. Добавление форм и эмодзи со вкусом может сделать текст более интересным и привлекательным для чтения:
➤ Пункт один
➤ Пункт два
➤ Пункт три
✅ Образец текста A
✅ Образец текста B
✅ Образец текста C
Ознакомьтесь с этим, чтобы изучить другие фигуры (и смайлики). Эта шпаргалка по смайликам полезна при поиске смайликов по имени.
Вуаля! Это были мои советы по обогащению документации Jupyter Notebook.✨ Мы можем не использовать все эти функции одновременно. Но знание того, как их использовать, подготовит вас, когда появится подходящая возможность.
Фото Криса Лоутона на UnsplashХотели бы вы получить доступ к большему количеству подобного контента? Участники Medium получают неограниченный доступ к любым статьям на Medium. Если вы станете участником, используя мою реферальную ссылку