Использование библиотеки Matplotlib. Как рисовать круговые графики

Немного рекламы

Этот пример показывает, как рисовать груговой график, который еще называют "пирогом".

Простейший график

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

#!/usr/bin/env python
#-*- coding: utf-8 -*-

import pylab

# Данные для построения графика
data = [20.0, 10.0, 5.0, 1.0, 0.5]

# Нарисовать круговой график
pylab.pie (data)

pylab.show()

Делаем "пирог" груглым

По умолчанию создается окно, у которого ширина и высота различны, из-за чего "пирог" получается не круглый, а овальный. Для того, чтобы "пирог" стал круглый, окно нужно создать самостоятельно с помощью функции figure(), которая принимает параметр figsize, определяющий размер окна в дюймах (разрешение также можно указывать в параметрах, но на данный момент обойдемся без этого). Также с помощью функции axes() создадим оси, занимающее все окно.

#!/usr/bin/env python
#-*- coding: utf-8 -*-

import pylab

# Данные для построения графика
data = [20.0, 10.0, 5.0, 1.0, 0.5]

# Создать новое окно (фигуру) с одинаковыми размерами сторон (6 x 6 дюйма)
pylab.figure(figsize=(6, 6) )

# Установим размеры осей по горизонтали и вертикали тоже одинаковыми
pylab.axes([0.0, 0.0, 1.0, 1.0])

# И снова нарисуем график
pylab.pie (data)

pylab.show()

Добавляем метки

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

#!/usr/bin/env python
#-*- coding: utf-8 -*-

import pylab

# Данные для построения графика
data = [20.0, 10.0, 5.0, 1.0, 0.5]

# Метки для секторов графика
labels = ["data1", "data2", "data3", "data4", "data5"]

# Создать новое окно (фигуру) с одинаковыми размерами сторон (6 x 6 дюйма)
pylab.figure(figsize=(6, 6) )

# Установим размеры осей по горизонтали и вертикали тоже одинаковыми
pylab.axes([0.05, 0.05, 0.9, 0.9])

# И снова нарисуем график
pylab.pie (data, labels=labels)

pylab.show()

Изменяем цвета секторов

Цвета секторов задаются с помощью параметра colors функции pie(). Цвета можно задавать различными способами, которые были описаны в статье Рисование трехмерных графиков в Python с помощью Pylab/MatPlotLib.

#!/usr/bin/env python
#-*- coding: utf-8 -*-

import pylab

# Данные для построения графика
data = [20.0, 10.0, 5.0, 1.0, 0.5]

# Метки для секторов графика
labels = ["data1", "data2", "data3", "data4", "data5"]

# Цвета для секторов
colors = ["g", "r", "#FF00BB", "0.5", "y"]

# Создать новое окно (фигуру) с одинаковыми размерами сторон (6 x 6 дюйма)
pylab.figure(figsize=(6, 6) )

# Установим размеры осей по горизонтали и вертикали тоже одинаковыми
pylab.axes([0.05, 0.05, 0.9, 0.9])

# И снова нарисуем график
pylab.pie (data, colors=colors, labels=labels)

pylab.show()
 

Разделяем сектора

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

#!/usr/bin/env python
#-*- coding: utf-8 -*-

import pylab

# Данные для построения графика
data = [20.0, 10.0, 5.0, 1.0, 0.5]

# Метки для секторов графика
labels = ["data1", "data2", "data3", "data4", "data5"]

# Цвета для секторов
colors = ["g", "r", "#FF00BB", "0.5", "y"]

# Уровени вывижения секторов
explode = [0.02, 0.05, 0.08, 0.08, 0.05]

# Создать новое окно (фигуру) с одинаковыми размерами сторон (6 x 6 дюйма)
pylab.figure(figsize=(6, 6) )

# Установим размеры осей по горизонтали и вертикали тоже одинаковыми
pylab.axes([0.1, 0.1, 0.8, 0.8])

# И снова нарисуем график
pylab.pie (data, explode=explode, colors=colors, labels=labels)

pylab.show()

Добавляем тень

Из эстетических соображений к графику можно добавить тень. Для этого в функцию pie() достаточно передать значение shadow с параметром True.

#!/usr/bin/env python
#-*- coding: utf-8 -*-

import pylab

# Данные для построения графика
data = [20.0, 10.0, 5.0, 1.0, 0.5]

# Метки для секторов графика
labels = ["data1", "data2", "data3", "data4", "data5"]

# Цвета для секторов
colors = ["g", "r", "#FF00BB", "0.5", "y"]

explode = [0.02, 0.05, 0.08, 0.08, 0.05]

# Создать новое окно (фигуру) с одинаковыми размерами сторон (6 x 6 дюйма)
pylab.figure(figsize=(6, 6) )

# Установим размеры осей по горизонтали и вертикали тоже одинаковыми
pylab.axes([0.1, 0.1, 0.8, 0.8])

# И снова нарисуем график
pylab.pie (data, explode=explode, colors=colors, labels=labels, shadow=True)

pylab.show()

Кроме перечисленных параметров, у функции pie() имеются еще параметры, влияющие на внешний вид, про них вы можете узнать из документации

Остальные примеры

Немного рекламы

Вы можете подписаться на новости сайта через RSS, Группу Вконтакте или Канал в Telegram.
5 stars

Рейтинг 4.8/5. Всего 12 голос(а, ов)




Подписаться на комментарии
Автор:
Тема:
 Ваш комментарий
 
 
Введите код 226