36. (П16) Базові графіки в matplotlib¶
Передумови¶
- Прочитана Лекція 35 — Вступ до matplotlib
- Встановлені бібліотеки:
pip install matplotlib numpy
Мова в коді
Усі рядкові літерали, заголовки та підписи графіків, імена файлів і змінних — лише латиницею. Кирилиця допускається тільки в коментарях.
Завдання¶
Написати скрипт plots.py. Кожне завдання створює окрему фігуру і зберігає її у файл task_1.png, task_2.png, ... через fig.savefig(..., dpi=150). Наприкінці скрипта — один plt.show().
Використовувати лише об'єктний стиль: fig, ax = plt.subplots() і методи ax.*. На кожному графіку — заголовок і підписи осей.
Персоналізація¶
STUDENT_NAME = "Ivan Petrenko" # ваше ім'я та прізвище транслітерацією
STUDENT_GROUP = "KI-31" # ваша група
N = 7 # ваш номер у списку групи + 5
У заголовку графіка завдання 1 має бути ваше ім'я та група.
Генератор випадкових чисел: rng = np.random.default_rng(N) — один раз на початку скрипта.
Завдання 1. Лінійний графік¶
- Створити
x = np.linspace(-10, 10, 100). - На одному графіку побудувати дві лінії:
y = x ** 2іy = N * x. - Перша лінія — суцільна, друга — пунктирна (
linestyle="--"). Додати легенду з підписами"x^2"і"N*x". - Увімкнути сітку (
ax.grid(True)). - Заголовок графіка — ваше ім'я та група, наприклад
"Ivan Petrenko, KI-31".
Завдання 2. Температура¶
Придумайте середню температуру за 12 місяців для свого міста.
- Побудувати лінійний графік із маркерами
"o". - На осі x підписати місяці:
"Jan","Feb", ... (set_xticks+set_xticklabels). - Додати горизонтальну пунктирну лінію середньорічної температури з підписом у легенді.
Завдання 3. Стовпчикова діаграма¶
Придумайте 5–7 категорій і значень (наприклад, години на тиждень: sleep, study, games, sport, ...).
- Побудувати
barh, найбільше значення — угорі. - Вивести значення біля стовпчиків через
bar_label.
Завдання 4. Гістограма¶
- Згенерувати 1000 значень нормального розподілу: середнє
170 + N, стандартне відхилення8. - Побудувати гістограму з 25 інтервалами.
- Вертикальними лініями позначити середнє та медіану (різні кольори, легенда).
Завдання 5. Scatter¶
- Згенерувати 50 точок:
x = rng.uniform(0, 10, 50),y = N + 3 * x + rng.normal(0, 4, 50). - Точки, у яких
yвище за середнєy, — одним кольором і маркером, решта — іншим (булева маска). - У консоль вивести коефіцієнт кореляції
xіy(2 знаки).
Для звіту¶
- код
plots.py; - шість зображень
task_1.png...task_6.png; - вивід консолі (завдання 5);
- відповідь одним реченням: чим
Figureвідрізняється відAxes?
Знайшли помилку чи бажаєте додати інформацію, щоб покращити курс? Створіть issue на GitHub