Чотири набори даних мають однакові середні (9.00 і 7.50), однакове стандартне відхилення (2.03), однакову кореляцію (0.82) і ту саму пряму регресії. Що з цього випливає?
Чому так. Це і є квартет Анскомба з першого розділу. Показники — стиснення з втратами: одинадцять пар чисел перетворюються на пʼять, і форма при цьому зникає. Варіант про «більше знаків» спокусливий, але хибний: додаткові знаки покажуть мікроскопічну різницю в четвертому розряді, а дуга від прямої відрізняється не цим.
Питання 2 / 8
Твоя функція будує графік і всередині кличе plt.plot(). Колега скаржиться, що після виклику твоєї функції його власний графік зіпсувався. У чому причина?
Чому так. Модуль pyplot — машина станів: усередині нього живе вказівник на поточний аркуш і поточну область, і plt.plot насправді робить plt.gcf().gca().plot(...). Функція, яка приймає ax аргументом і малює тільки в нього, цієї проблеми не має взагалі.
Питання 3 / 8
У тебе виторг кавʼярні за 60 днів. Питання: чи розпадаються дні на дві окремі групи. Який тип графіка відповість найпряміше?
Чому так. Гістограма ріже діапазон значень на смуги й рахує, скільки днів у кожну потрапило, — тому дві групи проявляються як два горби (44 буденні дні й 16 вихідних, між ними чотири порожні смуги). Лінія показує ритм і тренд, але про кількість високих і низьких днів мовчить: у неї немає осі «скільки разів».
Питання 4 / 8
Аркуш створено як plt.subplots(figsize=(8, 4)), збережено з dpi=150. Якою приблизно буде ширина файлу в пікселях?
Чому так. Розмір аркуша задано в дюймах, а dpi — це крапок на дюйм, тож пікселі — це добуток: 8 × 150 = 1200. Варіант «800» — це той самий аркуш при типовому dpi=100. Векторні формати (.svg, .pdf) dpi взагалі не мають: у них зберігаються вказівки, як малювати, а не пікселі.
Питання 5 / 8
Середній чек по кварталах: 96, 98, 101 і 104 гривні. Хтось поставив нижню межу осі 95. У скільки разів стовпчик Q4 стане вищим за стовпчик Q1 на екрані?
Чому так. Довжини стовпчиків стають 104−95 = 9 і 96−95 = 1, тобто відношення 9.0. Варіант «8.3 %» — це справжнє зростання, воно не змінюється від межі осі. «У 96 разів» — це коефіцієнт перебільшення (візуальні 800 % проти справжніх 8.3 %), а не відношення висот.
Питання 6 / 8
Виклик fig, axes = plt.subplots(2, 2) виконано. Що поверне axes[1]?
Чому так.plt.subplots(2, 2) повертає масив numpy форми (2, 2), тож axes[1] — це весь другий рядок, а окрема область — axes[1, 0]. Плаский масив буває лише для однієї смуги: plt.subplots(1, 3) дає форму (3,), і там працює саме axes[1].
Питання 7 / 8
Ти написав osi = продажі.plot(x="день", y="виторг"). Що лежить у змінній osi і що з нею можна робити?
Чому так. pandas усередині кличе matplotlib і віддає назад готовий Axes. Саме тому два підходи зчіплюються в обидва боки: результат df.plot() можна доробити методами ax.set_ylabel, ax.legend, а можна навпаки — попросити pandas малювати в готову область через df.plot(..., ax=ax).
Питання 8 / 8
Курс валюти за рік коливався між 41.2 і 42.8. Колега вимагає почати вісь y з нуля, бо «інакше це обман». Хто має рацію?
Чому так. Правило «вісь із нуля» стосується стовпчиків: там ми порівнюємо саме довжини, і обрізана вісь спотворює порівняння. Для лінії часового ряду ми читаємо форму зміни, а не довжину, і нуль на осі просто знищує всю картину. Чесність тут забезпечує не нуль, а помітно підписані межі.