Найти в Дзене
programmer's notes (python and more)

Программирование на языке python. Библиотека matplotlib. Ещё диаграммы

Оглавление

Доброго времени суток, читатели, зрители моего канала programmer's notes. Не забывайте подписываться и писать свои комментарии к моим статьям и видео.

Продолжаем работать с диаграммами, используя библиотеку matplotlib

Мы продолжим заниматься диаграммами, используя для этого библиотеку matplotlib. Вернёмся к столбчатым диаграммам. Совместим такую диаграмму с обычным графиком (см. программу ниже).

#!/usr/bin/python3
import matplotlib.pyplot as plt
x = ['Иванов', 'Петров', 'Сидоров', 'Мулькин', 'Пупкин']
y = [30000, 40000, 133500, 50000, 70000]
fig, ax = plt.subplots()
ax.bar(x, y, label='Зарплаты', color='#5566bb', alpha=0.3)
ax.plot(x, y, color='green', marker='o', markersize=7)
plt.xlabel('Месяц года')
plt.ylabel('Зарплаты')
plt.title('Комбинирование диаграмм')
plt.legend()
plt.savefig("my_diag.png")

На этот раз мы не будем вызывать окно библиотеки matplotlib. Будем использовать возможность сохранение избражения, полученного с помощью библиотекию. Для этого есть метод savefig(), который сохраняет картинку в указанном формате в файле с указанным именем. Содержимое полученного изображения см. на рисунке 1. Как видим графики, полученные с помощью методов plot() и bar() вполне себе совмещаются. При рисовании столбчатой диаграммы мы использовали параметр alpha, который определяет степень прозрачность столбцов. Это удобно, когда на рисунке нужно совместить несколько графиков.

Рисунок 1. Представление на рисунке двух диаграмм (комбинирование).
Рисунок 1. Представление на рисунке двух диаграмм (комбинирование).

Библиотека matplotlib и круговые диаграммы

Теперь обратимся к круговым диаграммам. Круговые диаграммы строятся с помощью метода pie().

#!/usr/bin/python3
import matplotlib.pyplot as plt
x = ['Иванов', 'Петров', 'Сидоров', 'Мулькин', 'Пупкин']
y = [30000, 40000, 133500, 50000, 70000]
fig, ax = plt.subplots(figsize=(8,6))
ax.pie(y, labels=x, autopct='%2.2f%%')
plt.title("Доли зарплат от общей суммы")
plt.savefig("my_diag.png")

График, полученный данной программой см. на рисунке 2. Обращу внимание на параметр autopct, который определяет формата вывода подсчитанных процентов. Также, как и в предыдущем случае, мы не выводим окно с картинкой, а сохраняем картинку в графическом файле.

Рисунок 2. Пример круговой диаграммы
Рисунок 2. Пример круговой диаграммы

В круговых диаграммах часто принято подписи к секторам выносить в отдельный блок (legend). Ниже показано как это делается.

#!/usr/bin/python3
import matplotlib.pyplot as plt
x = ['Иванов', 'Петров', 'Сидоров', 'Мулькин', 'Пупкин']
y = [30000, 40000, 133500, 50000, 70000]
fig, ax = plt.subplots(figsize=(8,6))
ax.pie(y, autopct='%2.2f%%')
plt.title("Доли зарплат от общей суммы")
ax.legend(x, loc='upper right')
plt.savefig("my_diag.png")

Как видим, чтобы получить подписи для каждого сегмента лостаточно указать список подписей методе legend(). При этом для каждой надписи выводятся также и цвета секторов. Параметр loc при этом определяет, где будут располагаться надписи.

Рисунок 3. Круговая диаграмма с вынесением подписей для секторов в отдельный блок
Рисунок 3. Круговая диаграмма с вынесением подписей для секторов в отдельный блок

При построении круговой диаграммы может быть интересен параметр explode, с помощью которого можно отодвигать сектор от цента. Например

ax.pie(y, autopct='%2.2f%%', explode=[0.1, 0.2, 0.3, 0.1, 0.2])

приведёт к такой диаграмме (рисунок 4)

Рисунок 4. Круговая диаграмма с параметром explode
Рисунок 4. Круговая диаграмма с параметром explode

Следующая статья

Ну, пока всё!

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

Круговые диаграммы напоминают мне поле для игры в рулетку
Круговые диаграммы напоминают мне поле для игры в рулетку