Как сделать квадрат в питоне графика

Обновлено: 08.07.2024

Рисуем простые фигуры в Tkinter — тренируемся на котиках!

Что такое Tkinter?

Tkinter — это библиотека, используемая для создания графики, в том числе — графического пользовательского интерфейса GUI.

Подключение Tkinter в Python и создание пользовательского окна.

Чтобы использовать возможности библиотеки себе и людям на радость, достаточно подключить библиотеку стандартным образом:

Важный момент: для рисования на холсте требуется точно указывать координаты для расположения фигур. Помните, что в Tkinter координатная плоскость имеет вид:

Таким образом, координаты точки, изображенной на рисунке слева, имеют вид: (200, 100).

Пара слов о раскрашивании фигур

Для того, чтобы раскрасить любую из рассмотренных в этой статье замкнутых фигур нам пригодятся дополнительные параметры:

Эти параметры перечисляются через запятую после обязательных параметров. Например:

Рисуем прямоугольник

Для создания прямоугольника нужно вызвать функцию create.rectangle(). В качестве обязательных параметров необходимо указать координаты верхней левой и нижней правой точек прямоугольника:

Добавим дополнительные параметры для придания красоты нашему прямоугольнику:

Размещаем текст в Tkinter

Превратим прямоугольник, созданный в предыдущем примере, в элемент мыслевыражения! Напишем на нем гениальную кошачью мысль вида: ‘МУР-МЯУ’ так, чтобы эта мысль располагалась прямо по центру прямоугольника. Для этого нам нужно указать:

  1. Координату центральной точки надписи, у меня это координата 247,348
  2. Подготовить текст надписи, он готов: ‘МУР-МЯУ’. Текст записывает в параметре text: text=’МУР-МЯУ’
  3. При желании добавить шрифт и размер: font=(‘Courier’, 18)

Соберем все параметры в единой строке в вызове функции create_text:

Взгляните, у нас получилась полноценная кошачья табличка!

Создаем многоугольник

Так как кошачья табличка у нас уже готова, не мешало бы создать для нее котика! Хотя бы простого, мультяшного, как этот:

Координаты точек определены, а значит, можно вызывать функцию create_polygon:

Полигон создан! Преобразим его с помощью дополнительных параметров: fill, outline и width:

Чтобы созданный полигон оказался под табличкой с кошачьей надписью, нужно строку кода, в которой мы создаем полигон расположить ВЫШЕ строк кода, в которых создается таблица с надписью :

Создаем овалы и круги в Tkinter

Создание овала или круга в Tkinter очень похоже на создание прямоугольника. Все дело в том, что принцип создания округлых форм в Tkinter основан на вписывании их в прямогугольные или квадратные. То есть вам не нужно знать радиус окружности и координаты ее центральной точки. Для создания круга нужно указать координаты верхней левой и правой нижней точек квадрата, описывающего эту окружность. А при создании овала, соответственно, верхней левой и правой нижней точек прямоугольника, описывающего этот овал. Далее можно перечислить необязательные параметры: цвета fill, обводки outline и ширины обводки width.

Думаю, эти белые шарики можно легко превратить в забавные кошачьи глаза. Нужно лишь добавить парочку маленьких черных зрачков:

Рисуем линии

Для рисования линии отлично подходит функция create_line. В качестве параметров нужно указать координаты начальной и конечной точек. Кроме того, можно задать толщину линии.

Найдите на изображении слева линию, которую выведет следующий код:

Арки и сегменты в Tkinter

Чтобы создать арку или сегмент, нужно представить описывающие их фигуры с прямыми углами и определить координаты верхнего левого и нижнего правого углов. Помимо этого нужно задать параметр extent, определяющий угол разворота дуги в градусах:

Пришло время нарисовать нашему котику улыбку:

Взгляните, как похорошел наш котик!

А теперь предлагаю самостоятельно потренироваться и дорисовать нашему коту носик, лапки и хвост, чтобы он выглядел примерно так:

Ниже я выложу весь код кота с хвостом и лапами для того, чтобы вы могли сравнить результаты:

Блог веб разработки статьи | видеообзоры | исходный код

webfanat вконтакте
webfanat youtube

tkinter python рисование

tkinter python рисование

Всем привет! Сегодня мы с вами познакомимся с элементом canvas который переводится как холст. Именно на данном холсте мы можем производить отрисовку различных фигур и текста. Итак, поехали!

Для того чтобы начать отрисовку в окне необходимо создать элемент canvas.

C помощью виджета canvas у нас создается холст. В него мы передали следующие параметры:

window - главное окно

width, height - ширина и высота холста

bg - заливка холста(gray - серый цвет)

cursor - курсор в фокусе холста(pencil - карандаш)

Элемент canvas

C помощью метода pack() мы выводим наш холст в главное окно.

Все теперь мы можем переходить к отрисовке. Начнем с простых линий.

линии в canvas tkinter

Здесь мы создали две прямых линии. Для их создания воспользовались методом create_line() который принимает в себя следующие параметры.

Первые два параметра это координаты x,y первой точки начало отрезка.

Вторые два параметры это координаты x,y второй точки конец отрезка.

width - толщина линии.

fill - заливка, цвет линии(yellow - желтый).

Для того чтобы на холсте нарисовать прямоугольник или квадрат, нужно воспользоваться методом create_rectangle().

квадрат в canvas tkinter

C помощью метода create_rectangle()мы нарисовали квадрат. Данный метод принимает в себя следующие параметры:

Первые два параметра координаты левого верхнего угла прямоугольника.

Вторые два параметра координаты правого нижнего угла прямоугольника.

fill - цвет заливки прямоугольника.

outline - цвет рамки прямоугольника.

Теперь переходим к отрисовке эллипсов и кругов.

Для того чтобы нарисовать круг или овал нам достаточно воспользоваться методом create_oval().

круг в canvas

В основе отрисовки круга с помощью данного метода лежит отрисовка прямоугольника. То есть по сути мы отрисовываем невидимый квадрат куда может быть помещен в полную высоту и ширину квадрат или овал.

Данный метод принимает собой следующие аргументы:

Первые два аргумента в квадратных скобочках координаты x,y левого верхнего угла квадрата.

Вторые два аргумента в квадратных скобочках координаты x, y правого нижнего угла квадрата.

fill - цвет заливки овала.

Для отрисовки более сложных фигур треугольников, многоугольников, многогранников.

Мы можем воспользоваться методом create_polygon().

сложные фигуры в canvas

Здесь мы нарисовали треугольник. В качестве параметров данный метод принимает пары значений координат точек которые последовательно между собой соединяются прямыми.

Точек в разных координатах можно создавать сколько угодно. В результате можно нарисовать фигуру практически любой сложности. Свойство fill отвечает за цвет заливки фигуры, а outline за ее контур. Заметьте мы указали цвет заливки точно такой же как и цвет холста и в результате у нас получился эффект не закрашенной фигуры.

И напоследок рассмотрим отрисовку текста в canvas.

текст в canvas tkinter

За отрисовку текста в canvas отвечает метод create_text(). В него передаются следующие параметры:

Первые два параметра координаты x, y расположения текста на холсте.

text - текст который мы хотим нарисовать

font - шрифт и размер текста

justify - выравнивание текста(слева, справа, по центру)

fill - цвет текста

Весь написанный за сегодня код выглядит так:

Отлично! Сегодня мы с вами познакомились с основами рисования canvas библиотеки tkinter.

Если у вас появились какие либо вопросы пишите в группу

или оставляйте их в комментариях к данной статье.

Также у меня есть канал на

где я каждую неделю публикую новые видео посвященные веб разработке. Так что переходите и будем развиваться вместе.

На этом у меня на сегодня все. Желаю вам успехов и удачи! Пока!

Оцените статью:

Статьи

Комментарии

Внимание. Комментарий теперь перед публикацией проходит модерацию

Евгений

Не подскажите как повернуть текст на 90 градусов чтобы подписать ось Y

Реклама

Запись экрана

Данное расширение позволяет записывать экран и выводит видео в формате webm

В этом руководстве разберем процесс возведения в степень в Python.

В математике возведение в степень — это операция, при которой число умножается само на себя несколько раз. Python предоставляет встроенные операторы и функции для выполнения возведения в степень.

Оператор ** для возведения в степень

Многие разработчики считают, что символ карет ( ^ ) — это оператор возведения числа в степень, ведь именно он обозначает эту операцию в математике. Однако в большинстве языков программирования этот знак выступает в качестве побитового xor .

В Python оператор возведения в степень обозначается двумя символами звездочки ** между основанием и числом степени.

Функциональность этого оператора дополняет возможности оператора умножения * : разница лишь в том, что второй оператор указывает на то, сколько раз первые операнд будет умножен сам на себя.

Чтобы умножить число 5 само на себя 6 раз, используется ** между основанием 5 и операндом степени 6. Вывод:

Проверим оператор с другими значениями.

Инициализируем целое число, отрицательное целое, ноль, два числа с плавающей точкой float , одно больше нуля, а второе — меньше. Степеням же присвоим случайные значения.


В статье рассматривается создание графических интерфейсов с помощью библиотеки Tkinter. Отдельное внимание уделяется виджету Canvas, предназначенному для рисования (draw) в Python.

Tkinter представляет собой графическую кроссплатформенную библиотеку на основе средств Tk. Это свободное ПО, которое включено в стандартную библиотеку языка программирования Python.

  • линий,
  • прямоугольников,
  • эллипсов,
  • текста,
  • окон,
  • изображений.

Но прежде чем продолжить, следует вкратце рассказать о существующих методах позиционирования элементов.

Позиционирование элементов в Python. Python grid

Для позиционирования элементов, во время работы с Tkinter используют разные методы:

Метод grid позволяет поместить элемент в конкретную ячейку условной сетки либо грида. Используется ряд параметров:

  • column — это номер столбца, отсчитывается с нуля;
  • row — это номер строки, отсчитывается с нуля;
  • columnspan — указывает число столбцов, занимаемых элементом;
  • rowspan — указывает число строк;
  • ipadx и ipady — подразумеваются отступы по горизонтали и вертикали от границ компонента до текста компонента;
  • padx и pady — аналогичные отступы, но от границ ячейки грида до границ компонента;
  • sticky — определяет выравнивание элемента в ячейке в случае, когда ячейка больше компонента.

Для начала работы с Tkinter библиотеку сначала надо импортировать:

from tkinter import *

Ниже определен грид из девяти кнопок:


Canvas: рисуем линии в Python

Виджет Canvas предоставляет функциональность, с помощью которой разработчик может нарисовать (drawn) графику в Tkinter. Для чего может понадобиться эта графика? К примеру, для получения статистики, создания своих виджетов, отрисовки небольших игр.

Начинать освоение Canvas лучше всего с линий — примитивных геометрических элементов. В Canvas линию с нужным размером можно создать через метод create_line() . Метод mainloop используется для вызова окна виджета.


У create_line() есть параметры — это координаты x и y . Именно они обозначают начальные и конечные точки будущего линейного отрезка. Вот как этот метод рисует (draws) обычную вертикальную линию:


Можно создавать и пунктирную линию — для этого существует опция dash . У этой опции есть собственные значения, помещенные в скобки. В примере это (4, 2).


  • цифра 4 обозначает длину тире (точки) в пикселях;
  • цифра 2 отвечает за ширину (width) пустого промежутка, существующего между тире (точками).

Если прописать dash=(1, 1) , на выходе получится линия из точек.

Когда рисуешь обычную линию, можно указать в качестве координат несколько конечных точек. Кусочек кода ниже отвечает за отрисовку треугольника — он ведь тоже состоит из простых линий.

В результате весь код отработает следующим образом:


Canvas: рисуем цветные прямоугольники в Python

Цвет — это объект, отображающий комбинацию трех цветов (красного, зеленого, синего — RGB). С помощью кода ниже были нарисованы прямоугольники. Также они были закрашены различными цветами.


Так создается виджет Canvas:


Далее создается прямоугольник, для чего используется create_rectangle() . Здесь надо прописать 4 параметра:

— координатное положение верхней левой ограничительной точки (левого верхнего угла);

— координатное положение нижней правой ограничительной точки (нижнего правого угла).

Если есть необходимость, то посредством параметра outline у прямоугольника задается цвет контура. Окрасить всю внутреннюю область можно с помощью параметра fill :


А вот и итоговый результат:


Рисуем сложные формы

Можно без проблем нарисовать круг, овал и прочие фигуры, включая криволинейные. Именно для этой цели и предназначен код ниже:


Благодаря этому коду будут созданы такие геометрические фигуры, как круг, прямоугольник, овал, дуга, многоугольник. Также следует обратить внимание на контур — он окрасится в красный цвет, а заливка будет зеленой. Ширина контура (width) — 2 px.

Сначала создается круг. Для его получения в Python задействуется метод create_oval() . Первые 4 параметра в нем нужны для указания ограничивающих координат. Здесь x и y являются координатами правой нижней и верхней левой точек квадрата, где помещен круг:


Аналогично создается и овал — меняются лишь первые 4 параметра.

Следующий этап — прямоугольник. Нарисованный restangle тоже имеет координатные значения x и y , играющие роль ограничительных точек.


Далее создается дуга. Так как она — это часть круга, то надо указать ограничительные координаты дуги. Ее угол устанавливается посредством параметра start , а размер угла — с помощью параметра extent :


Последнее — это многоугольник. Так как присутствует много углов, надо задействовать специальный метод create_polygon() , позволяющий задать нужное число координатных значений:


Остается посмотреть результат:


Также с помощью Canvas можно без проблем вставлять изображения и рисовать текст (text), используя шрифты разной высоты (height) и стиля (style).

Другие GUI-библиотеки для Python

Кроме библиотеки Tkinter и виджета Canvas, существует и масса других графических библиотек, применяемых для создания рисунков (drawings). Среди них:

  • Flexx,
  • wxPython,
  • PyQt5,
  • PyGUI,
  • PyGTK и многие другие.

При рисовании обычно применяется каскадный способ: компоненты добавляются поверх друг друга.

Drawing with Turtle

Отдельного упоминания заслуживает модуль Turtle (по аналогии с черепашками Turtles). Этот модуль позволяет создавать на Питоне рисунки и другие графические объекты, включая игры в специальном окне. Для того чтобы приступить к рисованию (drawing), надо сначала присоединить его (импортировать). Делается это одним из 3-х способов:

1) import turtle ;

2) from turtle import open as t ;

3) from turtle import* .

Drawing with Pygame

Pygame — набор модулей, используемый в тех случаях, когда нужно нарисовать 2D-игру. Также Pygame нередко называют библиотекой/фреймворком. С его помощью создают как компьютерные игры, так и мультимедийные приложения.


Pygame сравнивают с Tkinter, который с помощью своих функций и классов предоставляет языку программирования Python доступ к графической библиотеке Tk.

Эта статья представляет собой подробное руководство по визуализации данных в Python. Мы расскажем про построение графиков при помощью библиотек Pandas, Seaborn и Plotly, а также наглядно покажем, что счастье именно в деньгах.

Всемирный доклад о счастье пытается ответить на вопрос о том, какие именно факторы влияют на счастье во всем мире.

Структура статьи


Данная статья задумывалась одновременно и как пособие по написанию кода, и как своего рода небольшой справочник, в котором можно время от времени искать нужный тип графика. Для экономии места мы иногда помещали несколько графиков в одну картинку, но вы всегда можете найти наш код либо здесь, либо в соответствующем ему Jupyter ноутбуке.

Оглавление

На каждую секцию мы поставили гиперссылку, так что можете не читать предисловий, а сразу переходить к графикам. Мы не обидимся.

Моя история построения графиков в Python


Более или менее серьезно я начал изучать Python около двух лет назад. Начиная с этого времени, едва ли не каждую неделю я восторгался его простотой и легкостью использования, а также обилием великолепных библиотек с открытым исходным кодом. И чем больше я знакомился с шаблонами и концепциями языка, тем больше все это обретало смысл.

Matplotlib

Но с построением графиков все происходило ровно наоборот. В начале практически каждый мой график, построенный в Matplotlib, напоминал мне какого-то преступника, сбежавшего из 80-х годов. Более того, чтобы построить такую мерзость, мне приходилось проводить целые часы на Stackoverflow. И даже не напоминайте мне про мультидиаграммы. Конечно, результаты выглядят впечатляюще, и ты чувствуешь себя потрясающе, создавая такие вещи программно. Например, строя 50 диаграмм для разных переменных за один раз. Но для этого нужно проделать кучу работы и запомнить множество бесполезных команд.

Seaborn

Знакомство с Seaborn принесло большое облегчение. С помощью этой библиотеки можно несколько абстрагироваться от тонкой настройки. И с точки зрения эстетики получающихся графиков это большой шаг вперед. Но все же Seaborn построена на базе Matplotlib. И зачастую, для нестандартных настроек, приходится переходить к коду Matplotlib.

Bokeh

На короткий момент времени я было подумал, что моим спасением будет Bokeh. Я наткнулся на эту библиотеку, когда работал над геопространственной визуализацией. Но я очень быстро обнаружил, что Bokeh, хоть и отличается от Matplotlib, но построена так же глупо и запутанно.

Plotly

Некоторое время назад, опять-таки работая над визуализацией геопространственных данных, я попробовал plot.ly (далее везде будем называть ее просто plotly). Тогда эта библиотека показалась мне еще более абсурдной, чем все предыдущие. Вам нужно было завести там аккаунт, войти в него на вашем ноутбуке, и только потом plotly начинает строить графики в онлайн режиме. А затем вам нужно еще загрузить эти графики. Я очень быстро отбросил эту библиотеку. Но недавно я наткнулся на YouTube-видео про библиотеки plotly express и plotly 4.0, в котором в том числе говорилось, что они избавились от этой онлайн-чепухи. Я начал играться с этой библиотекой и в результате появилась эта статья. Как говорится, лучше поздно, чем никогда.

Kepler.gl

Не будучи никоим образом библиотекой Python, Kepler.gl, тем не менее, является отличным инструментом для визуализации геопространственных данных. Все что вам нужно, это CSV-файл, который вы легко можете создать при помощи Python.

Мои текущие предпочтения

В конце концов я остановился на библиотеке Pandas для построения графиков на скорую руку, и на Seaborn для презентаций и отчетов (когда визуализация очень важна).

Важность статистических распределений

Я начал изучать статистику (курс Stats 119), учась в Сан-Диего. Этот курс является вводным и включает в себя самые основы статистики, как например, агрегацию данных (визуальную и количественную), концепцию шансов и вероятностей, регрессию, выборки и, самое главное, статистические распределения. В это время мое понимание тех или иных количественных феноменов практически полностью сдвинулось в сторону представления их в виде статистических распределений (как правило, гауссовых).

И по сей день я нахожу потрясающим, как всего две величины, математическое ожидание и дисперсия, могут помочь вам постичь суть явления. Просто зная эти два числа, легко сделать вывод, насколько вероятен тот или иной результат. Мы сразу знаем, в какой области будут основные результаты. Это дает нам возможность быстро выделять статистически значимые явления, не производя при этом сложных вычислений.

В общем, теперь при работе с любыми новыми данными моим первым шагом всегда является попытка визуализировать их статистическое распределение.

Загрузка данных и импорт библиотек

Для начала давайте загрузим данные, которые мы будем использовать в этой статье. Я также произвел предобработку данных (интерполяцию и экстраполяцию — там, где это было уместно).

Загруженный датасет содержит данные в следующих колонках:

Импортирование

Быстро: простые графики в Pandas


Pandas имеет встроенные функции построения графиков, которые можно вызывать непосредственно из Series и DataFrame. За что я обожаю эти функции, это за их краткость, за разумные значения по умолчанию и за то, что с их помощью можно быстро понять, что происходит с данными.

Для создания графика просто вызовите метод .plot(kind= ) следующим образом:

В результате выполнения этой команды получится следующий график:


2018: Гистограмма количества стран в зависимости от ВВП на душу населения. Тут никаких сюрпризов: большинство стран бедны!

При построении графиков в Pandas я использую пять основных параметров:

  • kind: Pandas должна знать, какого типа график вы хотите строить. Возможны следующие варианты: hist, bar, barh, scatter, area, kde, line, box, hexbin, pie .
  • figsize: Позволяет переопределить значение размера, заданное по умолчанию (6 дюймов в ширину и 4 дюйма в высоту). Данный параметр принимает на вход кортеж, например figsize=(12,8) , что я часто использую.
  • title: Добавляет к графику заголовок. Как правило, я его использую, чтобы кратко описать, что происходит на графике, дабы потом это можно было быстро понять. Данный параметр принимает на вход строку.
  • bins: Позволяет переопределить ширину областей гистограммы. Данный параметр принимает на вход список или подобную ему последовательность, например bins=np.arange(2,8,0.25) .
  • xlim/ylim: Позволяет переопределить максимальные и минимальные значения осей x и y . Оба параметра принимают на вход кортежи, например xlim=(0,5) .

Давайте быстро пробежимся по некоторым типам таких графиков.

Вертикальная гистограмма


2018: Список 15 самых счастливых стран в мире. Лидирует Финляндия.

Горизонтальная гистограмма


Средний ВВП на душу населения с разбивкой по континентам. Лидерство Австралии и Новой Зеландии неоспоримо.

Ящик с усами (Box plot)

Точечный график (диаграмма рассеяния)


Диаграмма рассеяния ожидания продолжительности здоровой жизни из Всемирного доклада о счастье (ось х) и ожидания продолжительности жизни из Gapminder (ось у) демонстрирует сильную корреляцию между этими данными (что не удивительно).

Гексбиновая диаграмма


2018: Гексбиновая диаграмма показывает зависимость ожидаемой продолжительности жизни от щедрости.

Круговая диаграмма


2018: Круговая диаграмма показывает количество жителей планеты с разбивкой по континентам.

Диаграмма с накоплением


Количество жителей планеты растет.

Линейный график


Динамика счастья в Германии.

Выводы

Строить графики в библиотеке pandas удобно, просто и быстро. Правда, они выходят слегка корявыми. Но это нормально, так как для создания более эстетичных графиков у нас есть другие инструменты. Переходим к библиотеке seaborn .

Красиво: продвинутые графики в Seaborn


Seaborn использует параметры вывода по умолчанию. Чтобы убедиться, что ваши результаты совпадают с моими, выполните следующий код.

Построение одномерных распределений

Как уже говорилось ранее, я большой фанат статистических распределений. Гистограммы и распределения плотности вероятности являются мощными способами визуализации критических характеристик конкретной переменной. Давайте посмотрим, как мы строим распределения для одной переменной и как строим распределения нескольких переменных в одной диаграмме.


Левый график: гистограмма и ядерная оценка плотности “Life Ladder” для стран Азии в 2018 году. Правый график: ядерная оценка плотности “Life Ladder” для пяти градаций размера ВВП на душу населения. Счастье можно купить за деньги!

Построение двумерных распределений

Всякий раз, когда я хочу визуально исследовать взаимосвязь между двумя и более переменными, это обычно сводится к некоторой форме диаграммы рассеяния и оценке распределений. Существует три варианта концептуально одного и того же графика. В каждом из них график, расположенный в центре, помогает понять совместное распределение частот между двумя переменными. Вдобавок, на правой и верхней границе этого центрального графика изображено предельное одномерное распределение соответствующей переменной (в виде ядерной оценки плотности вероятности или гистограммы).


Совестный график в Seaborn. Точечная диаграмма, двумерная ядерная оценка плотности распределения вероятности и гексабиновая диаграмма в центре, и частные распределения случайных величин справа и сверху.

Точечная диаграмма

Точечная диаграмма — это отличный способ визуализации совместной плотности распределения двух случайных величин. Мы можем добавить третью переменную, выражая ее при помощи оттенка цвета, а также и четвертую, визуализируя ее при помощи размера точки.


Логарифм ВВП на душу населения относительно Life Ladder. Цвет определяет континент, а размер точки — количество населения.

Скрипичный график (Violin plot)

Скрипичный график — это фактически комбинация двух других графиков, ящика с усами (box plot) и графика ядерной оценки плотности вероятности. Он показывает плотность распределения количественной переменной в зависимости от значений категориальной переменной так, чтобы их можно было сравнить между собой.


На данном графике по оси х у нас континенты, а по оси у параметр Life Ladder. В качестве группирующего категориального параметра мы используем ВВП на душу населения, разбитый на пять групп. Отсюда также видно, что чем выше подушевой ВВП, тем выше уровень счастья.

Матричная диаграмма рассеяния

Матричная диаграмма рассеяния представляет собой все возможные попарные диаграммы рассеяния, представленные в виде большой квадратной матрицы. Я обычно нахожу этот вид графика несколько информационно перегруженным, но как бы то ни было, он может помочь найти закономерности.


Матрица рассеяния, построенная при помощи библиотеки Seaborn. Диагональные элементы матрицы являются графиками ядерной оценки плотности распределения вероятности каждой из переменных. А остальные элементы — это диаграммы рассеяния переменных относительно друг друга.

Фасетные сетки (Facet Grid)

Фасетные сетки в Seaborn — это для меня один из основных аргументов в пользу использования данной библиотеки. С ее помощью можно строить мультиграфики на одном дыхании! Рассматривая матричную диаграмму рассеяния, мы уже видели один из примеров фасетной сетки (функция FacetGrid в Seaborn). Данная функция позволяет создавать множество графиков, сегментированных по переменным. Например, в строках матрицы может быть одна переменная (подушевой ВВП, разбитый на пять категорий), а в колонках другая (континенты).

Для написания кода здесь требуется несколько больше кастомизации (а значит — использования Matplotlib), чем мне бы хотелось, но ничего не поделаешь.


По оси х — логарифм параметра Life Ladder, по оси y — годы. Колонки матрицы — это континенты, а строки — различные уровни (всего их 5) подушевого ВВП.

FacetGrid — гистограммы


Гистограммы параметра Life Ladder для всех континентов.

FacetGrid — графики ядерной оценки плотности вероятности с аннотацией

Также возможно добавить в каждый график, находящийся в фасетной сетке, свою специфичную аннотацию. В следующем примере мы добавляем математическое ожидание и дисперсию, а также вертикальную пунктирную линию, проходящую через значение математического ожидания.


Отдельно для каждого континента оценка распределения плотности вероятности параметра Life Ladder. На каждом графике выведено значение математического ожидания и дисперсии.

FacetGrid — температурные карты

Один из моих любимых графиков — это температурные карты, упакованные в фасетные сетки. Этот тип графика очень полезен, когда нужно визуализировать четыре различные переменные в одной картинке. Код выглядит несколько громоздким, но он может быть легко приспособлен под ваши нужды. Также важно заметить, что подобный тип графиков требует сравнительно большого объема данных и хорошей сегментации. Пропуски в данных здесь обрабатываются плохо.


Фасетная тепловая карта, визиализирующая уровень счастья в зависимости от подушевого ВВП, уровня коррупции, времени (годов) и континентов. Мы видим, что счастье увеличивается в правом верхнем углу (то есть, где высокий подушевой ВВП и низкая воспринимаемая коррупция). Влияние времени не определено, но видно, что некоторые континенты (Европа и Северная Америка) заметно счастливей Африки.

Очень красиво: потрясающие интерактивные графики в Plotly


И наконец-то, больше никакой Matplotlib! У библиотеки Plotly есть три важных свойства:

Точечный график (диаграмма рассеяния)

С помощью библиотеки Plotly графики строятся следующим образом. Создаем переменную fig = x.

(PARAMS) , а затем запускаем функцию fig.show() .

Логарифм подушевого ВВП

Точечный график (диаграмма рассеяния) — путешествие во времени

Параллельные категории — прикольный способ визуализировать категоральные переменные

Столбчатые диаграммы — пример интерактивных фильтров

Сюжетный график — как уровень счастья меняется со временем

Выводы и заключение

На сегодня пока все. Из данной статьи вы узнали, как стать настоящим Python-ниндзя в визуализации данных. Еще вы узнали, как можно молучить быстрый результат более эффективно, а также — как создавать очень красивые диаграммы, когда опять надвигается проклятое заседание правления.Кроме того, вы узнали, как создавать интерактивные диаграммы, которые особенно полезны при визуализации геопространственных данных.

Лаборатория Django-разработки

За 3 месяца отработай навыки Django-разработки до профессионального уровня на серьезном проекте под руководством наставника.

Читайте также: