Python работа с графиками

Шабанов Павел написал замечательный электронный учебник "Научная графика в Python".

Учебник состоит из 13 глав, объединённых в 3 части.

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

Вторая часть описывает логическую структуру рисунка в matplotlib и раскрывает особенности работы с элементами рисунка разных иерархических уровней: рисунком, областями рисования, координатными осями, делениями осей. Показаны основы работы с matplotlib в объектно-ориентированном стиле.

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

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

Часть I Основы matplotlib

Часть II Структура рисунка в matplotlib

Часть III Специальные элементы рисунка в matplotlib

Это пособие по matplotlib действительно стоит прочитать.

Графика в Python.

С помощью графики в Python можно рисовать фигуры и изображения, создавать анимацию, визуализировать математические вычисления в Python. В программах python можно использовать элементы графики в компьютерных играх.
Для работы с графикой в Python нужно импортировать модуль graphics.py. Как установить модуль graphics в Python.
Чтобы начать работу с графикой в Python, нужно создать окно для графики
Графический объект = GraphWin("Название окна для графики", ширина окна для графики в пикселях, высота окна для графики в пикселях)
GraphWin это ключевое слово, которое задаёт окно графической области, в котором будут отображаться графические объекты.
В качестве параметров этой функции указывается название окон для графики, ширина и высота окон в пикселях.
После запуска программы откроется окно для графики, где будут отображаться графические объекты.
Вся работа с графикой будет осуществляться нами через графические объекты.
Общая структура работы с графическими объектами в Python
Графический_объект.Вызов_команды()
Общая структура графической программы в Python.
# импортируем библиотеку graphics
from graphics import *
# создаём окно для графики
win = GraphWin("Окно для графики", 400, 400)
# . рисуем все объекты.
win.getMouse() # ждём нажатия кнопки мыши
win.close() # закрываем окно для графики
В этой программе мы определили объект графическое окно win и открыли его с размерами 400 на 400 пикселей.
Команда win.getMouse() ожидает нажатие на любую кнопку мыши, наведённую на область окна win.
win.close() закрывает окно для графических объектов win.
С помощью модуля graphics.py в программах на Python можно отобразить точку, линию, окружность, прямоугольник, эллипс и многоугольник, вывести текст на экран.
Чтобы задать расположение объекта в графическом окне Python, необходимо указать его координаты в системе координат Python. Начало координат находится в левом верхнем углу окна для графики.
Положительное направление оси X определяется слева направо, оси Y определяется сверху вниз. Чем больше значение координаты X, тем правее точка, чем больше значение координаты Y, тем точка ниже. Чтобы нарисовать заданный объект obj в окне для графики win, нужно использовать процедуру obj.draw(win)
Перед тем, как рисовать графические объекты в заданном графическом окне, нужно их задать.
Для задания точки в Python используется функция Point(x, y)
obj = Point(x, y)
x, y – координаты точки.
Пример программы на Python, которая задаёт и отображает точку в графическом окне.
from graphics import * # импортируем библиотеку graphics
win = GraphWin("Окно для графики", 400, 400) # создаём окно для графики размером 400 на 400 пикселей
obj = Point(50, 50) # создаём точку в координатах (50, 50)
obj.draw(win) # отображаем точку в окне для графики
win.getMouse() # ждём нажатия кнопки мыши
win.close() # закрываем окно для графики
Для задания отрезка в Python используется функция Line(объект точка первого конца, объект точка второго конца)
obj = Line(Point(x1, y1), Point(x2, y2))
x1, y1 – координаты начала отрезка линии,
x2, y2 – координаты конца отрезка линии.

Читайте также:  Почему ноут не читает флешку

Чтобы задать цвет рисования линий в Python используется команда obj.setOutline("цвет")
Пример программы на Python, которая отображает линию в графическом окне.
from graphics import *
win = GraphWin("Окно для графики", 400, 400)
obj = Line(Point(50, 50), Point(350, 350))
obj.setOutline("blue")
obj.draw(win)
win.getMouse()
win.close()
Для отображения окружности в Python используется
obj = Circle(Point(x, y), R)
x, y – координаты центра окружности,
R – радиус окружности.
Пример программы на Python, которая отображает окружность в графическом окне.
from graphics import *
win = GraphWin("Окно для графики", 400, 400)
obj = Circle(Point(200, 200), 50)
obj.draw(win)
win.getMouse()
win.close()
Для отображения прямоугольника в Python используется процедура
obj = Rectangle(Point(x1, y1), Point(x2, y2))
x1, y1 – координаты левого верхнего угла прямоугольника,
x2, y2 – координаты правого верхнего угла прямоугольника
Пример программы на Python, которая отображает прямоугольник в графическом окне.
from graphics import *
win = GraphWin("Окно для графики", 300, 300)
obj = Rectangle(Point(50, 50), Point(200, 250))
obj.draw(win)
win.getMouse()
win.close()


Для отображения эллипса в Python используется процедура
obj = Oval(Point(x1, y1), Point(x2, y2))
x1, y1 – координаты первого фокуса эллипса,
x2, y2 – координаты второго фокуса эллипса.
Пример программы на Python, которая отображает эллипс в графическом окне.
from graphics import *
win = GraphWin("Окно для графики", 300, 300)
obj = Oval(Point(100, 100), Point(250, 200))
obj.draw(win)
win.getMouse()
win.close()


Для отображения многоугольника в Python используется процедура
obj = Polygon(Point(x1, y1), Point(x2, y2),…, Point(xn, yn))
x1, y1, x2, y2,…, xn, yn – координаты вершин многоугольника.
Пример программы на Python, которая отображает пятиугольник в графическом окне.
from graphics import *
win = GraphWin("Окно для графики", 400, 400)
obj = Polygon(Point(10, 10), Point(300, 50), Point(200, 300), Point(150, 150), Point(70, 70))
obj.draw(win)
win.getMouse()
win.close()

Определение цвета закрашивания графического объекта в Python

Чтобы задать цвет закрашивания графического объекта в python используется команда obj.setFill("цвет")

Пример программы на Python, которая рисует закрашенную синюю окружность

from graphics import *
win = GraphWin("Окно для графики", 400, 400)
obj = Circle(Point(200, 200), 50)
obj.setFill("blue")
obj.draw(win)
win.getMouse()
win.close()

Для редактирования границ объектов в Python используются процедуры setOutline(“цвет границы”) и
setWidth(ширина границы).
obj.setOutline("blue") – объект obj отображается с границей синего цвета.
obj.setWidth(5) – объект obj отображается с шириной границы 5 пикселей.
По умолчанию графический объект в Python будет отображаться с границами чёрного цвета шириной 1 пиксель.
Пример программы на Python, которая отображает фигуру с синей границей и заливкой в графическом окне.
from graphics import *
win = GraphWin("Окно для графики", 310, 310)
obj = Polygon(Point(10, 10), Point(300, 50), Point(200, 300), Point(150, 150), Point(70, 70))
obj.setOutline("blue")
obj.setWidth(5)
obj.setFill("cyan")
obj.draw(win)
win.getMouse()
win.close()


Чтобы переместить графический объект в Python, используется процедура move(dx, dy) , которая перемещает объект на dx пикселей вправо и dy пикселей вниз.
obj.move(50, 50) смещает объект obj на 50 пикселей вправо и 50 пикселей вниз.
Для клонирования объектов используется процедура clone()
newObj = obj.clone()
С помощью этой команды создаётся новый графический объект newObj, который идентичен объекту obj.
Для удаления фигур с экрана используется процедура undraw() Объект удаляется с графического окна, но не удаляется из памяти.
obj.undraw()
Пример программы на Python, которая удаляет, перемещает и копирует объект в графическом окне.
from graphics import *
win = GraphWin("Окно для графики", 400, 400)
obj = Polygon(Point(30, 10), Point(30, 50), Point(20, 30), Point(15, 30), Point(7, 7))
obj.setOutline("blue")
obj.setWidth(2)
obj.setFill("cyan")
obj.draw(win)
win.getMouse()
obj.undraw()
win.getMouse()
obj.draw(win)
obj.move(100, 100)
win.getMouse()
shape = obj.clone()
shape.move(-100, -100)
shape.draw(win)
win.getMouse()
win.close()
Для создания текста в графическом окне в Python используется команда

текстовый объект= Text(координаты точки размещения текста, “Текст”)
msg = Text(Point(50, 100), “Hello World!”)
На экран в точке с координатами (50, 100) выведется текст со строкой Hello World!
Для изменения размера текста используется команда текстовый объект.setSize(размер текста)
msg.setSize(12)
Цвет текста изменяется с помощью метода setTextColor(цвет)
msg.setTextColor(“black”)
Текст в графическом объекте можно заменить с помощью метода setText(“Текст”)
msg.setText(“Другой текст”)
Стиль текста изменяется с помощью процедуры setStyle(стиль)
msg.setStyle(“bold”)
Стиль normal изменяет стиль текста на обычный, bold меняет стиль на полужирный, italic меняет стиль на курсив, bold italic меняет стиль текста на полужирный курсив.
Пример программы на Python, которая отображает текст в графическом окне.
from graphics import *
win = GraphWin("Окно для графики", 400, 400)
obj = Polygon(Point(10, 10), Point(300, 50), Point(200, 300), Point(150, 150), Point(70, 70))
obj.setOutline("blue")
obj.setWidth(5)
obj.setFill("cyan")
obj.draw(win)
win.getMouse()
obj.undraw()
msg = Text(Point(200, 200), "Фигура удалилась с экрана")
msg.setSize(12)
msg.setTextColor("black")
msg.setStyle("bold italic")
msg.draw(win)
win.getMouse()
win.close()

Читайте также:  Что такое медиа стример

Вернуться к содержанию Следующая тема Графика turtle черепашка в питон

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

Установка

Варианты установки Matplotlib

Существует два основных варианта установки этой библиотеки: в первом случае вы устанавливаете пакет Anaconda , в состав которого входит большое количество различных инструментов для работы в области машинного обучения и анализа данных (и не только); во втором – установить Matplotlib самостоятельно, используя менеджер пакетов. Про установку Anaconda вы можете прочитать в статье Python. Урок 1. Установка .

Установка Matplotlib через менеджер pip

Второй вариант – это воспользоваться менеджером pip и установить Matplotlib самостоятельно, для этого введите в командной строке вашей операционной системы следующие команды:

Первая из них обновит ваш pip , вторая установит matplotlib со всеми необходимыми зависимостями.

Проверка установки

Для проверки того, что все у вас установилось правильно, запустите интерпретатор Python и введите в нем следующее:

После этого можете проверить версию библиотеки (она скорее всего будет отличаться от приведенной ниже):

Быстрый старт

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

Если вы работаете в Jupyter Notebook для того, чтобы получать графики рядом с ячейками с кодом необходимо выполнить специальную magic команду после того, как импортируете matplotlib ::

Результат работы выглядеть будет так, как показано на рисунке ниже.

Если вы пишете код в .py файле, а потом запускаете его через вызов интерпретатора Python , то строка %matplotlib inline вам не нужна, используйте только импорт библиотеки.

Пример, аналогичный тому, что представлен на рисунке выше, для отдельного Python файла будет выглядеть так:

В результате получите график в отдельном окне.

Далее мы не будем останавливаться на особенностях использования magic команды, просто запомните, если вы используете Jupyter notebook при работе с Matplotlib вам обязательно нужно включить %matplotlib inline.

Теперь перейдем непосредственно к Matplotlib . Задача урока “Быстрый старт” – это построить разные типы графиков, настроить их внешний вид и освоиться в работе с этим инструментом.

Построение графика

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

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

Изменим тип линии и ее цвет, для этого в функцию plot() , в качестве третьего параметра передадим строку, сформированную определенным образом, в нашем случае это “r–”, где “r” означает красный цвет, а “–” – тип линии – пунктирная линия. Более подробно о том, как задавать цвет и какие типы линии можно использовать будет рассказано с одной из следующих глав.

Несколько графиков на одном поле

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

Читайте также:  Filza file manager 4pda

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

Несколько разделенных полей с графиками

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

Построим уже известные нам две зависимость на разных полях.

Здесь мы воспользовались новыми функциями:

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

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

Остальные функции уже вам знакомы, дополнительно мы использовали параметр fontsize для функций xlabel() и ylabel() , для задания размера шрифта.

Построение диаграммы для категориальных данных

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

Построим диаграмму на которой будет отображаться количество фруктов в магазине:

Для вывода диаграммы мы использовали функцию bar() .

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

Основные элементы графика

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

Корневым элементом при построения графиков в системе Matplotlib является Фигура ( Figure ). Все, что нарисовано на рисунке выше является элементами фигуры. Рассмотрим ее составляющие более подробно.

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

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

Сетка и легенда

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

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

Если в данный момент вам многое кажется непонятным – не переживайте, далее мы разберем подробно особенности настройки и использования всех элементов представленных на поле с графиками.

P.S.

Вводные уроки по “Линейной алгебре на Python” вы можете найти соответствующей странице нашего сайта . Все уроки по этой теме собраны в книге “Линейная алгебра на Python”.

Если вам интересна тема анализа данных, то мы рекомендуем ознакомиться с библиотекой Pandas. Для начала вы можете познакомиться с вводными уроками. Все уроки по библиотеке Pandas собраны в книге “Pandas. Работа с данными”.