Въведение в Matplotlib в Python

Matplotlib е библиотека за графиране на Python, която експертите по машинно обучение използват най-вече за създаване на статични и интерактивни визуализации.

Какво е Matplotlib

Mathplotlib е творение на Джон Д. Хънтър през 2003 г., пуснато на 8 май 2021 г. и има текуща версия 3.4.2.

Тази библиотека е написана основно на Python, докато останалата част е написана на C goal и JavaScript, което я прави съвместима с платформа.

Matplotlib използва NumPy, което е цифрово разширение на Python. Неговото разширение с NumPy добавя неговата жизнеспособност като алтернатива с отворен код и го прави по-добро предпочитание от MATLAB.

За GUI приложения на Python, Matplotlib позволява начертаването на статични графики върху него с помощта на обектно-ориентирания API, с който идва.

Потребителите могат да използват само няколко писмени реда код на Python, за да визуализират своите данни с помощта на различни диаграми, включително точкови диаграми, хистограми, стълбовидни диаграми, кръгови диаграми, линейни диаграми и квадратни диаграми.

Можете да използвате Matplotlib, за да създавате графики в среди, включително Python shell, Jupyter notebook,
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 предоставя многобройни опции за чертане за визуализиране на данни. Той също така позволява персонализиране на сюжетите чрез предоставяне на различни теми, цветове и опции за палитри, които потребителят може да използва, за да манипулира сюжетите.

  Топ 8 софтуерни решения, които изпробвахме

Тези опции за чертане включват:

#1. Стълбови графики

Стълбовидните графики, известни като стълбови графики, са подходящ вариант за визуализиране на количествено сравнение на стойности в рамките на една и съща категория.

Matplotlib представя този график с помощта на правоъгълни ленти, където техните дължини и височини представляват техните пропорционални стойности. Лентите могат да бъдат хоризонтални или вертикални.

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)

Изход:

  6 решения за управление на етикети за оптимизиране на вашите етикети

Извеждане на стълбовиден график в Mathplotlib

Както в нашия пример по-горе, можете допълнително да укажете цвета на лентите, като използвате атрибута цвят. Освен това, plt.xlabel и p.ylabel наименуват съответно осите x и y, докато plt.title наименува диаграмата.

#2. Как да създадете пай парцел

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

Синтаксис:

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

Параметърът цветове задава цвета на парчетата пай. Можете да използвате масив от стойности, за да посочите цвят за всеки срез.

За допълнително включване на подробности за всеки срез в пая, аргументът autopct добавя числовите проценти, които всеки срез представлява, използвайки нотацията за форматиране на низ на Python. Експлозията като аргумент приема масив от стойности, които започват от 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. Създаване на хистограма

С хистограма ще използваме поредица от интервали, за да представим обхвата на дадените стойности по оста x.
Оста y, от друга страна, ще представлява информацията за честотата.

За разлика от другите графики, начертаването на хистограма в Matplotlib изисква някои предварително дефинирани стъпки, които трябва да следвате, за да създадете графиката.

Тези стъпки включват:

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

    x – Това представлява последователността от масиви

    контейнери – Това е незадължителен параметър, който представлява незастъпващи се интервали от променливи, които могат да съдържат цели числа или последователност от низове.

    диапазон – Определя горния и долния диапазон на контейнерите

    подравняване – Този параметър контролира подравняването на хистограмата. Независимо дали е ляво, дясно или средно.

    цвят – Определя цвета на лентите.

    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, която идва с различни функции, които помагат при нейното внедряване.

      10 софтуера за вземания, за да не пропуснете плащане през 2022 г

    Ние използваме функцията plot(), която е обща функция, която идва с pyplot за начертаване на линейни графики и различни други типове линейни графики, включително извити графики и множество линейни графики. Създаването на тези различни видове диаграми зависи от стойностите, които предавате на оста y.

    Когато чертаете, импортирайте matplotlib.pyplot и Numpy, които чертаят диаграмите. Методът plot(x,y) създава линейната графика чрез предаване на произволни стойности на аргументите x и y.

    Освен това можете да подадете променлива за етикет, която маркира графиката. Функцията за заглавие допълнително назовава заглавието на диаграмата, докато функциите 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 и какви функции ще използвате, за да създадете графиката.

    Приятно планиране!📉📊