Как изменить оси matplotlib
Перейти к содержимому

Как изменить оси matplotlib

6.8. Деления осей и подписи к ним

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

Matplotlib деления осей

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

Matplotlib совмещение делений осей с линиями сетки

Как видите так действительно лучше. Хотя в некоторых ситуациях возможны и некоторые казусы. Например вот такие:

Matplotlib ограничения в настройке внешнего вида сетки

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

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

Библиотека Matplotlib в Python

Библиотека matplotlib в Python помогает нам отображать данные на графиках в простейшем виде. Если вы знакомы с построением графиков в MATLAB, то Matplotlib будет легко использовать для базового построения графиков.

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

Терминология

  • Figure представляет собой законченное окно или страницу, на которой построен график.
  • Axes – это область, на которой отображаются данные. Это может быть ось X, ось Y и т.д.
  • Spines – это линии, которые соединяют точки Axes.

Установка Matplotlib

Библиотеку matplotlib легко установить с помощью pip:

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

Начало работы

В этом разделе мы начнем с построения графика и начнем передавать данные функциям matplotlib в python .

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

Мы начнем с очень простого примера построения графика. Мы просто будем использовать два списка Python в качестве источника данных для точек графика. Напишем для этого фрагмент кода:

Пример библиотеки matplotlib в python

Диаграмма рассеяния

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

Диаграмма рассеяния в python

Гистограммы

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

Мы используем функцию hist() для построения гистограммы. У него есть 2 важных параметра:

  • список значений для построения;
  • количество диапазонов для распределения этих точек.

Продемонстрируем это с помощью фрагмента кода:

Гистограммы

Настройка Plot

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

Настройка Plot

Рисование нескольких кривых

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

Рисование нескольких кривых

Изменение цвета и добавление надписи на графике

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

Изменение цвета и добавление надписи на графике

  1. изменен цвет кривых, чтобы упростить сравнение;
  2. добавлена рамка надписи, в которой показано, какой цвет что представляет. Это упрощает чтение метаданных на графике.

Создание гистограммы

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

Создание гистограммы

Создание круговой диаграммы

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

Создание круговой диаграммы

Создание тепловых карт

Графики – это круто, но когда дело доходит до визуализации географической информации, нет ничего лучше, чем тепловая карта:

Использование библиотеки 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 )

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *