Доброго времени суток, читатели, зрители моего канала 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, который определяет степень прозрачность столбцов. Это удобно, когда на рисунке нужно совместить несколько графиков.
Библиотека 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, который определяет формата вывода подсчитанных процентов. Также, как и в предыдущем случае, мы не выводим окно с картинкой, а сохраняем картинку в графическом файле.
В круговых диаграммах часто принято подписи к секторам выносить в отдельный блок (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 при этом определяет, где будут располагаться надписи.
При построении круговой диаграммы может быть интересен параметр explode, с помощью которого можно отодвигать сектор от цента. Например
ax.pie(y, autopct='%2.2f%%', explode=[0.1, 0.2, 0.3, 0.1, 0.2])
приведёт к такой диаграмме (рисунок 4)
Следующая статья
Ну, пока всё!
Пишите свои предложения и замечания, и занимайтесь программированием, а также проектированием баз данных, хотя бы для поддержания уровня интеллекта.