JavaRush /Курси /Python SELF UA /Збереження графіків як зображень для використання в звіта...

Збереження графіків як зображень для використання в звітах

Python SELF UA
Рівень 42 , Лекція 1
Відкрита

1. Способи збереження графіків

Сьогодні ми з тобою не просто будемо будувати красиві графіки, але й перетворювати їх у чудові зображення, які можна вставити в твої звіти, презентації чи альбоми на випадок: "Глянь, я зробив це!". Хто знає, може твій графік стане вірусним у соціальних мережах, і ти нарешті отримаєш свої п’ятнадцять хвилин слави!

Як і в будь-якому доброму кулінарному шоу, де обираємо рецепт, ми почнемо з огляду різних форматів файлів, у яких можна зберегти графіки. Кожен формат має свої особливості, і розуміння цих нюансів допоможе тобі обирати відповідне "блюдо" для твого "меню". Ось деякі з них:

  • PNG (Portable Network Graphics): один із найпопулярніших форматів для веб-графіки. Відрізняється гарною компресією без втрати якості, прозорістю і гарною підтримкою у більшості застосунків.
  • PDF (Portable Document Format): ідеальний для вбудовування в документи. Є векторним форматом, тобто зберігає чіткість зображення при масштабуванні.
  • SVG (Scalable Vector Graphics): ще один векторний формат, відмінно підходить для вебу. Підтримує інтерактивність і анімації.
  • JPEG (Joint Photographic Experts Group): зазвичай використовується для фотографій, оскільки має втратну компресію, що може не підійти для графіків з текстом.

Тепер, коли ми розуміємо, які у нас є варіанти, давай займемося збереженням графіків за допомогою функції savefig() із бібліотеки Matplotlib.

Збереження графіків за допомогою savefig()

Matplotlib робить процес збереження графіків практично безболісним, як оновлення ОС на твоєму телефоні (якщо все йде за планом). Давай розглянемо, як це робиться.

Python

import matplotlib.pyplot as plt

# Припустимо, у нас є простий графік
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]

plt.plot(x, y, label='Прості числа')
plt.xlabel('x')
plt.ylabel('y')
plt.title('Лінійний графік простих чисел')
plt.legend()

# Збереження графіка у файл
plt.savefig('primes.png')

Цей код створює файл primes.png у поточній директорії. Ось і все! Немає потреби завчати заклинання чи приносити жертви цифровим богам. Ти просто замість plt.show() викликаєш plt.savefig('шлях/назва файлу') і все!

2. Налаштування параметрів збереження

Звичайно, просто зберегти графік недостатньо — ми хочемо, щоб він виглядав фантастично! Як каже стара приказка: "Якщо графік поганий у якості, то його ніхто не помітить". Чи якось так.

Налаштування якості і роздільної здатності зображення

Для створення високоякісних зображень можна налаштувати параметр dpi (dots per inch), який визначає щільність пікселів в зображенні. Чим вище значення, тим більш деталізоване зображення. Для веба зазвичай вистачає 72 dpi, а для друку — 300 dpi і більше.

Python

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [10, 20, 15, 25, 30]

plt.plot(x, y)

# Збереження графіка з високою роздільною здатністю
plt.savefig("high_quality_plot.png", dpi=300)
plt.show()

Тут dpi=300 збільшує якість зображення, роблячи його більш чітким, що особливо корисно для звітів і друку.

Збереження без меж і додаткових полів

Matplotlib за замовчуванням додає поля навколо графіка, що не завжди зручно для вставки в звіт. Щоб зберегти зображення без полів, використовуй параметр bbox_inches="tight".

Python

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [5, 10, 15, 20, 25]

plt.plot(x, y)

# Збереження графіка без полів
plt.savefig("plot_no_borders.png", bbox_inches="tight")
plt.show()

Параметр bbox_inches="tight" прибирає зайві відступи навколо графіка, що дозволяє отримати більш компактне зображення.

Встановлення розмірів графіка перед збереженням

Іноді потрібно зберегти графік з певними розмірами (наприклад, для презентацій чи веб-публікацій). За допомогою figure(figsize=(ширина, висота)) можна задати розмір графіка в дюймах.

Python

import matplotlib.pyplot as plt

# Встановлення розмірів графіка
plt.figure(figsize=(10, 5))  # 10 дюймів по ширині і 5 по висоті

x = [1, 2, 3, 4, 5]
y = [5, 10, 15, 20, 25]

plt.plot(x, y)
plt.title("Графік із заданим розміром")

# Збереження графіка з вказаним розміром
plt.savefig("custom_size_plot.png")
plt.show()

У цьому прикладі графік зберігається з розміром 10x5 дюймів. Розміри можна регулювати під конкретні вимоги звіту чи презентації.

Додаткові параметри savefig()

  • transparent=True: Зберігає зображення з прозорим фоном, що корисно для вставки на кольорові чи прозорі фони.
  • pad_inches: Задає додаткові відступи навколо графіка. Використовується разом із bbox_inches.
  • format: Вказує формат файлу збереження: pdf, png, jpg, ...

Якщо параметр format не вказано, то метод savefig() спробує визначити його виходячи з імені файлу.

Python

# Збереження графіка з налаштуванням параметрів
plt.savefig('primes_high_res', dpi=300, pad_inches='tight', format='png', transparent=True)

Тепер ваш графік виглядатиме так чітко, що будь-хто, хто його побачить, одразу скаже: "Вау, ти точно знав, що робиш!"

3. Приклади збереження

Як правило, у нас є багато прикладів, які можна використати для тестування і налагодження. Завдяки цьому ми можемо зрозуміти, як різні параметри впливають на кінцевий результат.

Збереження у форматі PDF

Якщо вам потрібно вбудувати графік у звіт або презентацію, формат PDF ідеально підходить для цього. Його векторні властивості дозволяють масштабувати зображення без втрати якості.

Python

plt.savefig('primes.pdf', bbox_inches='tight')

Збереження у векторному форматі SVG

SVG чудово підходить для веб-сторінок чи плагінів з анімацією, оскільки його властивості дозволяють додавати інтерактивність.

Python

plt.savefig('primes.svg', bbox_inches='tight')

Збереження у форматі JPEG

Якщо у вашому графіку переважають зображення, а не чіткі лінії та текст, то формат JPEG може бути корисним.

Python

plt.savefig('primes.jpg', quality=95)

Корисні поради

  • Назва файлу: Обирайте зрозумілі й описові назви для файлів, щоб полегшити їх пошук і повторне використання.
  • Перевірка якості: Перед включенням у звіт перегляньте графік на екрані, щоб переконатися, що якість відповідає вимогам.
  • Використання прозорого фону: Корисно при створенні графіків для презентацій чи вебсайтів, де графік може накладатися на кольоровий фон.

Типові проблеми

Під час збереження графіків можуть виникати помилки, як і у випадку, коли ви намагаєтеся оновити драйвери принтера. Одна з найбільш поширених проблем — неробоча функція savefig() у середовищах типу Jupyter Notebook. Це пов'язано з тим, що графіки в інтерактивних середовищах можуть лише відображатися, а не зберігатися. У цьому випадку можна використати метод plt.close() для закриття графіка після збереження.

Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ