Имеется файл с оценками студентов по предмету «ПР13_оценки.csv». Разработайте приложение, которое строит numpy столбиковую диаграмму по предмету «Программирование и основы алгоритмизации» с выводом количества оценок разного вида. использовать можно только библиотеку matplotlib
python
import numpy as np
import matplotlib.pyplot as plt
Затем загрузим файл «ПР13_оценки.csv» с помощью библиотеки numpy:
python
data = np.genfromtxt('ПР13_оценки.csv', delimiter=',')
Для построения столбиковой диаграммы по предмету «Программирование и основы алгоритмизации» необходимо выбрать все строки, где в первом столбце значение равно «Программирование и основы алгоритмизации». Однако, данные в файле могут быть не очищены, поэтому необходимо сначала найти соответствующий индекс столбца с названием предметов, а затем выбрать нужные строки:
python
subjects = data[0] # выбираем строку с названиями предметов
prog_index = np.where(subjects == 'Программирование и основы алгоритмизации')[0][0] # находим индекс нужного предмета
prog_data = data[1:, prog_index] # выбираем все оценки по этому предмету
Продолжим с подсчетом количества разных оценок. Возможные значения оценок в данном случае — это целые числа от 1 до 5. Для подсчета можно воспользоваться функцией numpy.unique, которая вернет уникальные значения и количество их появлений:
python
values, counts = np.unique(prog_data, return_counts=True)
Значения оценок и количество их появлений можно использовать для построения столбиковой диаграммы. Для этого используем функцию plt.bar:
python
plt.bar(values, counts)
Для наглядности добавим названия осей, заголовок и сетку:
python
plt.xlabel('Оценка')
plt.ylabel('Количество')
plt.title('Оценки по предмету «Программирование и основы алгоритмизации»')
plt.grid(True)
В результате получаем график, который можно сохранить или показать на экране:
python
plt.savefig('diagram.png')
plt.show()
Полный код приложения:
python
import numpy as np
import matplotlib.pyplot as plt
data = np.genfromtxt('ПР13_оценки.csv', delimiter=',')
subjects = data[0] # выбираем строку с названиями предметов
prog_index = np.where(subjects == 'Программирование и основы алгоритмизации')[0][0] # находим индекс нужного предмета
prog_data = data[1:, prog_index] # выбираем все оценки по этому предмету
values, counts = np.unique(prog_data, return_counts=True)
plt.bar(values, counts)
plt.xlabel('Оценка')
plt.ylabel('Количество')
plt.title('Оценки по предмету «Программирование и основы алгоритмизации»')
plt.grid(True)
plt.savefig('diagram.png')
plt.show()
Пример результата:
![Столбиковая диаграмма](https://i.imgur.com/iNiKcWM.png)Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет
Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет