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

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

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

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

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

import matplotlib.pyplot as plt


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

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

    plt.show()

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

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

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

import matplotlib.pyplot as plt


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

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

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

    plt.show()

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

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

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

import matplotlib.pyplot as plt


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

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

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

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

    plt.show()

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

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

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

import matplotlib.pyplot as plt


if __name__ == '__main__':
    # Данные для построения графика
    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]

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

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

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

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

import matplotlib.pyplot as plt


if __name__ == '__main__':
    # Данные для построения графика
    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]

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

Изменяем цвет линий вокруг секторов

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

Если параметр autopct не задан, то возвращаются списки экземпляров двух классов:

Если вы хотите изменить цвет линий, которые окружают каждый из секторов, мы можем воспользоваться экземплярами класса Wedge (клин) и вызвать в нем методы set_edgecolor() для установки цвета линии и set_linewidth() для установки толщины линии. Это показано в следующем примере, в котором цвет линий делается черным:

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

import matplotlib.pyplot as plt


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

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

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

    # Нарисовать круговой график
    wedges, texts = plt.pie(data, explode=explode, labels=labels)

    for wedge in wedges:
        wedge.set_linewidth(1)
        wedge.set_edgecolor('k')

    plt.show()

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

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

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

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



Павел 29.04.2019 - 06:11

Опечатка!
"Делаем "пирог" груглым"

Павел 29.04.2019 - 06:11

Опечатка!
"Делаем "пирог" груглым"


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