Вступ до Matplotlib у Python

Matplotlib — це бібліотека графічних зображень Python, яку експерти з машинного навчання переважно використовують для створення статичних та інтерактивних візуалізацій.

Що таке Matplotlib

Mathplotlib створено Джоном Д. Хантером у 2003 році, випущено 8 травня 2021 року та має поточну версію 3.4.2.

Ця бібліотека в основному написана на Python, а решта — на C goal і JavaScript, що робить її сумісною з платформою.

Matplotlib використовує NumPy, який є числовим розширенням Python. Його розширення з NumPy додає його життєздатності як альтернативи з відкритим кодом і робить його кращим перевагою, ніж MATLAB.

Для додатків Python GUI Matplotlib дозволяє будувати на ньому статичні графіки за допомогою об’єктно-орієнтованого API, який він постачає.

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

Ви можете використовувати Matplotlib для створення графіків у середовищах, включаючи оболонку Python, блокнот Jupyter,
Jupyter lab, а також за допомогою Pycharm або Anaconda та на серверах веб-додатків, таких як Flask і Django, на різних платформах.

Як і в MATLAB, ви можете широко контролювати графіки з точки зору шрифтів, ліній, кольорів і стилів.

Після короткого ознайомлення з бібліотекою Matplotib у Python давайте подивимося, як ми можемо налаштувати її в наших системах.

Налаштування середовища Matplotlib

Як і будь-який інший пакет і бібліотеку Python, ви можете інсталювати попередньо скомпільовану бібліотеку Matplotlib і її пакети в усіх операційних системах за допомогою менеджера пакетів pip.

Звичайно, вам потрібно спочатку встановити Python і пакет pip у вашій системі.

Наступні команди відображають версію Python і pip, щоб підтвердити, чи ці інструменти вже встановлено.

Перевірте, чи встановлено Python

Python --version

Перевірте, чи встановлено pip

pip -V

Встановіть Mathplotlib

Наведена нижче команда встановлює пакет Matplotlib з індексу пакетів Python (PyPI).

python -m pip install matplotlib

Ця команда завантажує та встановлює відповідні пакети Matplotlib. Після завершення інсталяції ви повинні побачити повідомлення про успішну інсталяцію.

Щоб переконатися, що Matplotlib успішно встановлено, введіть наступну команду, яка відобразить версію Matplotlib у вашому командному рядку.

import matplotlib
matplotlib.__version__

Розробники, які бажають інсталювати нескомпільований пакет Matplotlib, повинні мати доступ до потрібного компілятора у своїй системі, на додаток до залежностей, сценаріїв налаштування, конфігураційних файлів і патчів.

Однак ця конкретна нескомпільована інсталяція Matplolib може бути складною, особливо для новачків у Matplotlib. Тож чому б просто не використати однорядкову команду, щоб установити бібліотеку за лічені секунди?🤔

Після встановлення Matplotlib імпортуйте пакет у своє середовище, щоб отримати доступ до його утиліт.

Параметри побудови графіка Matplotlib

Matplotlib надає численні параметри графіків для візуалізації даних. Це також дозволяє налаштовувати сюжети, надаючи різні теми, кольори та параметри палітри, які користувач може використовувати для керування сюжетами.

Ці параметри нанесення включають:

#1. Гістограми

Стовпчасті діаграми, відомі як стовпчасті діаграми, є підходящим варіантом для візуалізації кількісного порівняння значень у межах однієї категорії.

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

  Виправлення Неможливо запустити програму Відмовлено в доступі Visual Studio

Matplotlib використовує свою функцію plt.bar() для створення гістограми.

Крім того, ви можете використовувати більше функцій для керування цим графіком. Наприклад, функції plt.xlabel() і plt.ylabel() позначають осі x і y графіка відповідно.

Функція plt.title() також дозволяє вам дати назву вашому сюжету, а функція plt.savefig() зберігає сюжет. Функція plot.show(), яка є найважливішою, відображає графік.

#2. Пиріжкові сюжети

Ви можете візуалізувати пропорційний розподіл елементів у межах однієї категорії за допомогою кругової статистичної діаграми, яку ми називаємо секторними діаграмами.

Секторні діаграми відображають дані у відсотковому вигляді. Уся площа діаграми відповідає відсотковому відношенню всіх даних, тоді як окремі сегменти секторної діаграми представляють частини відсоткового відношення даних.

Matplotlib використовує функцію plt.pie(), яка малює та налаштовує параметри секторної діаграми.
Інші параметри, такі як autopct, які друкують значення кругової діаграми з точністю до 1 знака після коми, корисні для побудови кругових діаграм.

Бізнес-організації знаходять секторні діаграми корисними для представлення відповідної інформації, наприклад операцій, продажів або ресурсів.

#3. Гістограма

Гістограма відображає розподіл числових даних. Він використовує безперервні інтервали, щоб розділити дані на окремі розділи.

Основна відмінність між гістограмою та стовпчастою діаграмою полягає в типі даних, які вони обробляють. Тоді як гістограми обробляють безперервний тип даних, стовпчасті діаграми обробляють категоричні дані.

Matplotlib використовує функцію hist(), яка використовує масив випадкових або визначених значень для створення гістограми.

#4. Лінійні ділянки

Ці графіки корисні для показу зв’язку між двома значеннями даних, які ми визначаємо як числові та категоричні, на основі X і Y.

Лінійні графіки важливі для відстеження змін значень даних протягом певного часу.

#5. Діаграми розсіювання

Діаграма розсіювання вказує на взаємозв’язок, включаючи кореляцію між змінними в даних. Це також корисно для виявлення викидів.

Точкові діаграми використовують точки для представлення зв’язку змінних даних і того, як зміна однієї змінної може вплинути на іншу.

Як створити графіки в Matplotlib

Matplotlib використовує різні функції для створення різних графіків. Він також використовує дуже мало рядків коду для створення сюжету.

Нижче ми побачимо, як створити різні параметри графіка за допомогою різних функцій у Matplotlib.

#1. Барна ділянка в Matplotlib

Стовпчасті діаграми, як пояснено вище, відображають категорії даних за допомогою стовпчиків і осей, які представляють порівняння категорій на одній осі та відповідних значень категорій на іншій осі.

Функція bar() у Matplotlib використовує різні макети аргументів для опису макета смуг, як показано нижче.

plt.bar(x, y, height, width, bottom, align)

Параметри x і y представляють значення координати x і значення координати y стовпця на графіку. Параметр ширини представляє ширину панелі, тоді як параметр висоти представляє висоту панелі.

Наприклад, представимо кількість собак і котів у притулку для тварин під назвою x.

import matplotlib.pyplot as plt
import numpy as np

x = ["Cats", "Dogs"]
plt.xlabel("Cats and Dogs in Shelter")
plt.ylabel("No. of animals in Shelter")
plt.title("Number of cats and dogs in shelter x")
y = [300, 350]
plt.bar(x, y, color="black", width = 0.5)

Вихід:

Виведення гістограми в Mathplotlib

Як і в нашому прикладі вище, ви можете додатково вказати колір смуг за допомогою атрибута color. Крім того, plt.xlabel і p.ylabel називають осі x і y, відповідно, тоді як plt.title називає графік.

#2. Як створити пиріг

Matplotlib використовує функцію pie(), яка постачається з модулем pyplot для побудови кругової діаграми.
Функція представляє дані для побудови у формі масиву.

  Як змінити голоси Google для синтезу мовлення

Синтаксис:

matplotlib.pyplot.pie(data, explode=None, labels=None, colors=None, autopct=None, shadow=False)

Параметр кольорів встановлює колір скибочок пирога. Ви можете використовувати масив значень, щоб визначити колір для кожного фрагмента.

Щоб додатково включити деталі кожного фрагмента в секторі, аргумент autopct додає числові відсотки, які представляє кожен фрагмент, використовуючи нотацію форматування Python String. Рознесення як аргумент приймає масив значень, які починаються з 0,1, щоб визначити відстань фрагмента від центру сектору.

Давайте побудуємо кругову діаграму, яка відображає ресурси у відсотках, виділені для конкретного проекту.

import matplotlib.pyplot as plt
import numpy as np

y = np.array([25, 10, 45, 20])
mylabels = ["w", "x", "y", "z"]
explodevalues = [0.1, 0.2, 0, 0]
colors = ['tab:blue', 'tab:green', 'tab:orange', 'tab:red']
plt.title("Resources allocated for a random project")
plt.pie(y, labels = mylabels, colors=colors,explode = explodevalues, autopct="%1.1f%%", shadow = True)
plt.show() 

Вихід:

Вихід кругової діаграми в Mathplotlib

Діаграма вище відображає секторну діаграму з чотирма фрагментами, позначеними w, x, y та z відповідно. Значення рознесення визначають, наскільки далі від центру пирога будуть розміщені шматочки.

На діаграмі вище x знаходиться далі, оскільки його значення рознесення більше, ніж інші. Атрибут shadow додає тінь до кругової діаграми, як на зображенні, тоді як autopct встановлює відносний відсоток до всього сектору, який представляє кожен фрагмент.

#3. Створення гістограми

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

На відміну від інших графіків, для побудови гістограми в Matplotlib потрібні деякі заздалегідь визначені кроки, які потрібно виконати, щоб створити графік.

Ці кроки включають:

  • Створіть діапазон діапазонів із наявного набору значень даних. Ви можете використовувати функцію np.random.normal(), яка може генерувати для вас випадкові значення.
  • Використовуючи ряд інтервалів, розподіліть значення на діапазон значень.
  • Підрахуйте значення, що потрапляють у кожен окремий інтервал.
  • Тепер використовуйте функцію matplotlib.pyplot.hist(), щоб створити гістограму.
  • Функція hist() приймає кілька параметрів, зокрема:

    x – представляє послідовність масиву

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

    діапазон – визначає верхній і нижній діапазони бункерів

    align – цей параметр керує вирівнюванням гістограми. Ліворуч, праворуч чи посередині.

    колір – визначає колір смужок.

    rwidth – встановлює відносну ширину смужок на гістограмі відповідно до ширини контейнера.

    log – параметр log визначає логарифмічний масштаб на осі гістограми.

    У наступному прикладі будується гістограма з визначеними значеннями.

    from matplotlib import pyplot as plt
    
    x = [22, 40, 87, 5, 43, 30, 56,73, 55, 54, 11, 20, 51, 5,  50, 60, 70, 80]
    
    plt.hist(x)
    plt.title(Histogram plot example')
    plt.xlabel('x axis')
    plt.ylabel('frequency')
    plt.show()
    

    Вихід:

    Виведення гістограми в Mathplotlib

    #4. Лінійний графік у Matplotlib

    Matplotlib використовує свою дочірню бібліотеку під назвою pyplot, яка постачається з різними функціями, які допомагають її реалізувати.

    Ми використовуємо функцію plot(), яка є загальною функцією, яка постачається разом із pyplot для побудови лінійних графіків та різних інших типів лінійних графіків, у тому числі вигнутих і кількох лінійних графіків. Створення цих різних видів графіків залежить від значень, які ви передаєте на вісь y.

    Під час малювання імпортуйте matplotlib.pyplot і Numpy, які малюють діаграми. Метод plot(x,y) створює лінійний графік шляхом передачі випадкових значень аргументам x і y.

      PDF Eraser дозволяє редагувати PDF-файли, додавати до них зображення та текст

    Крім того, ви можете передати змінну label, яка позначає графік. Функція title також називає назву графіка, тоді як функції xlabel і ylabel називають осі. Нарешті, функція show() відображає графік.

    Наприклад:

    import matplotlib.pyplot as plt
    import numpy as np
    
    x = np.linspace(0, 5, 10)
    
    y = 3*x + 2
    plt.title('Line plot example')
    plt.xlabel('x axis')
    plt.ylabel('y axis')
    plt.plot(x, y)
    plt.show()

    Результат:

    Виведення лінійного графіка в Mathplotlib

    Атрибут np.linspace повертає на графік набір рівномірно розташованих чисел у певному інтервалі для значень x. Це створить масив із 10 значень у діапазоні від 0 до 5. Значення y створено з рівняння, яке використовує відповідні значення x.

    Створення точкових діаграм

    Matplotlib використовує метод scatter() для створення цього графіка.
    Цей метод приймає такі параметри.

    matplotlib.pyplot.scatter(x_axis_data, y_axis_data, s=None, c=None, marker=None, cmap=None, vmin=None, vmax=None, alpha=None, linewidths=None, edgecolors=None) 

    Параметри x_axis_data та y_axis_data не можна залишати порожніми, на відміну від решти параметрів, які можуть бути необов’язковими та мати значення None. Тоді як аргумент x_axis_data визначає масив даних для осі x, аргумент y_axis_data встановлює масив даних для осі y.

    Приклад діаграми розсіювання в matplotlib

    import matplotlib.pyplot as plt
     
    x =[15, 17, 18, 27, 22, 27, 32, 14, 11, 12, 29, 16]
     
    y =[19, 16, 17, 18, 10, 26, 13, 27, 14, 18, 17, 35]
    plt.title('Scatter plot example')
    plt.xlabel('x variable')
    plt.ylabel('y variable')
    plt.scatter(x, y, c ="green")
     
    # To show the plot
    plt.show()

    Його вихід буде таким:

    Виведення діаграми розсіювання в Mathplotlib

    Що таке subplot() у matplotlib

    Функцію subplot() можна використовувати для малювання кількох графіків на одній фігурі Matplotlib. Це дозволяє переглядати та порівнювати кілька графіків на малюнку.

    Ця функція поверне кортеж із трьома аргументами; рядків і стовпців як перший і другий аргумент відповідно, і індекс поточного графіка як третій аргумент.

    Рядки та стовпці чітко визначають макет Matplotlib.

    Таким чином, plt.subplot(2, 1, 1), наприклад, побудує фігуру Matplotlib з двома рядками та одним стовпцем, і цей графік буде першим графіком.

    З іншого боку, plt.subplot(2, 1, 2) відображає другу діаграму з двома рядками та одним стовпцем.

    Побудова цих двох графіків створить їх один над одним, як у прикладі нижче.

    import matplotlib.pyplot as plt
    import numpy as np
    
    #plot 1:
    x = np.array([2, 4, 6, 8])
    y = np.array([3, 6, 9, 12])
    
    plt.subplot(2, 1, 1)
    plt.plot(x,y)
    
    #plot 2:
    x = np.array([3, 6, 9, 12])
    y = np.array([1, 2, 3, 4])
    
    plt.subplot(2, 1, 2)
    plt.plot(x,y)
    
    plt.show()

    Результат наведеного вище прикладу виглядатиме як на зображенні нижче.

    Використовуючи інший приклад, давайте використаємо функцію subplot, щоб побудувати дві фігури з одним рядком і двома стовпцями. Це відобразить графіки поруч.

    import matplotlib.pyplot as plt
    import numpy as np
    
    #plot 1:
    x = np.array([2, 4, 6, 8])
    y = np.array([3, 6, 9, 12])
    
    plt.subplot(1, 2, 1)
    plt.plot(x,y)
    
    #plot 2:
    x = np.array([3, 6, 9, 12])
    y = np.array([1, 2, 3, 4])
    
    plt.subplot(1, 2, 2)
    plt.plot(x,y)
    
    plt.show()

    Наведений вище приклад покаже наступний результат.

    Ну, це було цікаво інтерактивно, вам так не здається?😃

    Заключні слова

    Matplotlib — це відома бібліотека візуалізації в Python. Його інтерактивність і можливість легкого використання навіть для початківців роблять його ще кращим інструментом для малювання на Python.

    У цій статті наведено приклади різноманітних графіків, які можуть створювати функції, які постачаються з Matplotlib, зокрема секторні діаграми, стовпчасті діаграми, гістограми та діаграми розсіювання.

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

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

    Вдалого планування!📉📊