6.8. Деления осей и подписи к ним
Также как и линии сетки, деления осей бывают основными и вспомогательными. Для управления делениями осей — тиками необходим модуль matplotlib.ticker . Однако, чаще всего, без сетки, от этих делений нет никакого толка. Вот график с вспомогательными делениями без сетки:
Теперь создадим тот же самый график но уже с вспомогательной сеткой:
Как видите так действительно лучше. Хотя в некоторых ситуациях возможны и некоторые казусы. Например вот такие:
Во первых, линии вспомогательной сетки не рисуются под линиями основной. Во вторых такие сетки никогда не следует строить. Используйте близкие друг к другу цвета, а линии вспомогательной сетки всегда делайте тоньше и курсивными.
Иногда бывает необходимо настраивать внешний вид меток делений на осях и их подписей:
Библиотека Matplotlib в Python
Библиотека matplotlib в Python помогает нам отображать данные на графиках в простейшем виде. Если вы знакомы с построением графиков в MATLAB, то Matplotlib будет легко использовать для базового построения графиков.
Чтобы начать понимать, как Matplotlib помогает нам строить графики и фигуры визуализации для представления данных, нам нужно знать некоторые из основных терминов, которые мы будем часто использовать в этом посте. Давайте сначала изучим эти термины.
Терминология
- Figure представляет собой законченное окно или страницу, на которой построен график.
- Axes – это область, на которой отображаются данные. Это может быть ось X, ось Y и т.д.
- Spines – это линии, которые соединяют точки Axes.
Установка Matplotlib
Библиотеку matplotlib легко установить с помощью pip:
Теперь мы готовы создать несколько примеров, используя эту библиотеку визуализации данных.
Начало работы
В этом разделе мы начнем с построения графика и начнем передавать данные функциям matplotlib в python .
Линейный график
Мы начнем с очень простого примера построения графика. Мы просто будем использовать два списка Python в качестве источника данных для точек графика. Напишем для этого фрагмент кода:

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

Гистограммы
В этом разделе мы познакомим вас с гистограммами. В то время как графики информируют нас о том, как меняются наши данные, гистограмма описывает, как наши данные распределяются. Чем больше значений в диапазоне, тем выше полоса диапазона.
Мы используем функцию hist() для построения гистограммы. У него есть 2 важных параметра:
- список значений для построения;
- количество диапазонов для распределения этих точек.
Продемонстрируем это с помощью фрагмента кода:

Настройка Plot
Если вы заметили первый график Line, мы увидим, что ось Y не начинается с 0. Мы можем изменить это:

Рисование нескольких кривых
Совершенно распространено рисование нескольких кривых на одном графике для сравнения. Попробуем вот это:

Изменение цвета и добавление надписи на графике
Как мы видели, кривые выглядят красиво, но разве все они не так похожи? Что, если мы хотим изменить их цвет и показать, что представляет каждый цвет? Попробуем вместе нарисовать синусоидальную и косинусную кривые:

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

Создание круговой диаграммы
Мы можем создавать привлекательные круговые диаграммы с помощью простого фрагмента кода:

Создание тепловых карт
Графики – это круто, но когда дело доходит до визуализации географической информации, нет ничего лучше, чем тепловая карта:
Использование библиотеки Matplotlib. Как изменять интервал осей
По умолчанию библиотека Matplotlib подбирает масштаб графика так, чтобы в окне уместились все точки, однако с помощью функций xlim() и ylim() можно задавать интервал, который мы хотим посмотреть более подробно.
Следующий пример создает список точек, расположенных на интервале от -50 до 50 по оси X, однако мы ограничиваем просматриваемую область интервалом от -10 до 30.
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
# . Импортируем один из пакетов Matplotlib
import pylab
# . Импортируем пакет со вспомогательными функциями
from matplotlib import mlab
# Будем рисовать график этой функции
def func ( x ) :
"""
sinc (x)
"""
if x == 0 :
return 1.0
return math . sin ( x ) / x
# Интервал изменения переменной по оси X
xmin = — 50.0
xmax = 50.0
# Шаг между точками
dx = 0.2
# . Создадим список координат по оси X на отрезке [-xmin; xmax], включая концы
xlist = mlab. frange ( xmin , xmax , dx )
# Вычислим значение функции в заданных точках
ylist = [ func ( x ) for x in xlist ]
# . Нарисуем одномерный график с использованием стиля
pylab. plot ( xlist , ylist )
# . На графике будет показан только участок от -10 до 30 по оси X
pylab. xlim ( — 10 , 30 )
# . Покажем окно с нарисованным графиком
pylab. show ( )
Результат получается следующий:

Следующий пример использует также функцию ylim(), чтобы расширить область по вертикали от -1 до 2:
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
# . Импортируем один из пакетов Matplotlib
import pylab
# . Импортируем пакет со вспомогательными функциями
from matplotlib import mlab
# Будем рисовать график этой функции
def func ( x ) :
"""
sinc (x)
"""
if x == 0 :
return 1.0
return math . sin ( x ) / x
# Интервал изменения переменной по оси X
xmin = — 50.0
xmax = 50.0
# Шаг между точками
dx = 0.2
# . Создадим список координат по оиси X на отрезке [-xmin; xmax], включая концы
xlist = mlab. frange ( xmin , xmax , dx )
# Вычислим значение функции в заданных точках
ylist = [ func ( x ) for x in xlist ]
# . Нарисуем одномерный график с использованием стиля
pylab. plot ( xlist , ylist )
# . На графике будет показан только участок от -10 до 30 по оси X
pylab. xlim ( — 10 , 30 )
# . На графике будет показан участок от -1 до 2 по оси Y
pylab. ylim ( — 1 , 2 )
# . Покажем окно с нарисованным графиком
pylab. show ( )
В результате мы увидим следующую картину:

Если мы хотим изменить только верхний или нижний предел на осях, то можно воспользоваться именованными параметрами xmin или xmax для функции xlim() и ymin или ymax для функции ylim(). Думаю, что их назначение понятно из названий.
Следующий пример изменяет только нижний предел по оси X и верхний по оси Y:
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
# . Импортируем один из пакетов Matplotlib
import pylab
# . Импортируем пакет со вспомогательными функциями
from matplotlib import mlab
# Будем рисовать график этой функции
def func ( x ) :
"""
sinc (x)
"""
if x == 0 :
return 1.0
return math . sin ( x ) / x
# Интервал изменения переменной по оси X
xmin = — 50.0
xmax = 50.0
# Шаг между точками
dx = 0.2
# . Создадим список координат по оиси X на отрезке [-xmin; xmax], включая концы
xlist = mlab. frange ( xmin , xmax , dx )
# Вычислим значение функции в заданных точках
ylist = [ func ( x ) for x in xlist ]
# . Нарисуем одномерный график с использованием стиля
pylab. plot ( xlist , ylist )
# . На графике будет показан только участок от -10 до 30 по оси X
pylab. xlim ( xmin = — 10 )
# . На графике будет показан участок от -1 до 2 по оси Y
pylab. ylim ( ymax = 2 )