Друкарня від WE.UA

Створення графіків деяких елементарних функцій на Python

Зміст

Всіх вітаю! У цій невеличкій статті ми розглянемо як створювати лінійні графіки за допомогою бібліотеки matplotlib та plotly. Створимо графіки деяких математичних функцій, що звуться елементарними та дізнаємося, як генерувати послідовності за допомогою numpy.

Візуалізація з matplotlib

Встановлення matplotlib

Windows:

pip install matplotlib

MacOS:

pip3 install matplotlib

Linux:

pip install matplotlib

Створення першого графіка

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

Спочатку імпортуємо бібліотеку matplotlib, особливо підмодуль pyplot та називаємо її plt:

import matplotlib.pyplot as plt

Далі імпортуємо стандартний модуль math:

import math

Наступним кроком створюємо два списки: x_values та y_values. Одразу заповнюємо перший список, який буде відображатися по осі x, а другий (по осі y) ми заповнимо згодом:

x_values = [5, 10, 15, 20, 25, 30, 35, 40, 45, 50]
y_values = []

Тут ми створюємо функцію process_x_values(), у тілі якої проходимося по кожному елементу у списку x_values, знаходимо його квадратний корінь і додаємо у список y_values:

def process_x_values():
    for x in x_values:
        y_element = math.sqrt(x)
        y_values.append(y_element)

У фінальній частині програми створюємо сам графік завдяки функції plot(), надаючи їй наші списки для осей x та y, додаємо до графіка заголовок за допомогою функції title() і показуємо вікно з графіком через функцію show():

def visualizer():
    plt.plot(x_values, y_values)
    plt.title("Simple Graph")

    plt.show()

На останок викликаємо обидві функції:

process_x_values()
visualizer()

На виході отримаємо такий графік:

Наш перший графік, вітаю!

Ось і вийшов наш перший графік! Зараз ми застосували модуль math для його ралізації, але у подальшому з такою ж метою ми будемо використовувати бібліотеку numpy. Ця бібіліотека знадобиться нам для значень x далі, тому сенс використання math знакає.

Встановлення numpy

Windows:

pip install numpy

MacOS:

pip3 install numpy

Linux:

pip install numpy

Функція linspace() у бібліотеці numpy

Функція linspace() утворює послідвоність чисел, яку ми задаємо завдяки параметрам start, stop та num. У параметрі start ми вказуємо число, з якого повинна починатися наша послідовність, stop відповідає за те, до якого числа генерувати послідовність, а num — кількість чисел у послідовності.

У наведеному нижче прикладі ми створюємо послідовніть від 0 до 10, яка містить 70 чисел:

x = np.linspace(0, 10, 70)

Ось яка вийшла послідовність:

[ 0.          0.14492754  0.28985507  0.43478261  0.57971014  0.72463768
  0.86956522  1.01449275  1.15942029  1.30434783  1.44927536  1.5942029
  1.73913043  1.88405797  2.02898551  2.17391304  2.31884058  2.46376812
  2.60869565  2.75362319  2.89855072  3.04347826  3.1884058   3.33333333
  3.47826087  3.62318841  3.76811594  3.91304348  4.05797101  4.20289855
  4.34782609  4.49275362  4.63768116  4.7826087   4.92753623  5.07246377
  5.2173913   5.36231884  5.50724638  5.65217391  5.79710145  5.94202899
  6.08695652  6.23188406  6.37681159  6.52173913  6.66666667  6.8115942
  6.95652174  7.10144928  7.24637681  7.39130435  7.53623188  7.68115942
  7.82608696  7.97101449  8.11594203  8.26086957  8.4057971   8.55072464
  8.69565217  8.84057971  8.98550725  9.13043478  9.27536232  9.42028986
  9.56521739  9.71014493  9.85507246 10.        ]

Створення графіків деяких елементарних функцій з matplotlib

Пропоную створити ряд графіків для елементарних функцій за допомогою функціоналу модуля numpy.

Графік sin(x)

Створюємо графік для синуса:

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 70)
y = np.sin(x)


def visualizer():
    plt.plot(x, y)
    plt.title("sin(x)")

    plt.show()


visualizer()
Графік синуса

Тут і далі ми викликаємо математичні функції через numpy, як це показано нижче:

y = np.sin(x)

Графік cos(x)

Створюємо графік для косинус:

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 70)
y = np.cos(x)


def visualizer():
    plt.plot(x, y)
    plt.title("cos(x)")

    plt.show()


visualizer()
Графік косинуса

Графік log(x)

Створюємо графік для тангенса:

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 70)
y = np.log(x)


def visualizer():
    plt.plot(x, y)
    plt.title("log(x)")

    plt.show()


visualizer()
Графік log(x)

Графік sqrt(x)

Створюємо графік для котангенса:

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 70)
y = np.sqrt(x)


def visualizer():
    plt.plot(x, y)
    plt.title("sqrt(x)")

    plt.show()


visualizer()
Графік квадратного кореня

Графік exp(x)

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 70)
y = np.exp(x)


def visualizer():
    plt.plot(x, y)
    plt.title("exp(x)")

    plt.show()


visualizer()
Графік експоненти

Візуалізація з plotly

А тепер пропоную відійти від базової бібліотеки matplotlib і створити ці графіки у бібліотеці plotly, яка також дозволяє створювати графіки, але більш красиві за виглядом.

Встановлення plotly

Windows:

pip install plotly

MacOS:

pip3 install plotly

Linux:

pip install plotly

Створення першого графіка

Спочатку імпортуємо бібліотеки numpy та plotly. З бібліотеки plotly нам конкретно треба імпорутвати пакет graph_objects:

import numpy as np
import plotly.graph_objects as go

Значення x залишаємо незмінними, а от значення y нехай приймає значення x у кубі:

x = np.linspace(0, 10, 70)
y = np.pow(x, 3)

Далі перейдемо до безпосереднього створення лінійного графіка. Створюємо функцію cubic_graph(), де створюємо сам графік:

def cubic_graph(x, y):
    linear_graph = go.Figure(data=go.Scatter(x=x, y=y))
    linear_graph.update_layout(title="Графік x у кубі")
    linear_graph.show()


cubic_graph(x, y)

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

linear_graph = go.Figure(data=go.Scatter(x=x, y=y))

Далі вказуємо заголовок для графіка:

linear_graph.update_layout(title="Графік x у кубі")

Під кінець показуємо графік:

linear_graph.show()

Ось повний код, який в нас вийшов:

import numpy as np
import plotly.graph_objects as go

x = np.linspace(0, 10, 70)
y = np.pow(x, 3)


def cubic_graph(x, y):
    linear_graph = go.Figure(data=go.Scatter(x=x, y=y))
    linear_graph.update_layout(title="Графік x у кубі")
    linear_graph.show()


cubic_graph(x, y)

Тепер нарешті настав час запустити код:

Наш перший графік з plotly

Також слід відмітити, що plotly виводить графіки на веб-сторінці, що виникне після запуску коду.

Графіки деяких елементарних функцій з plotly

Графік sin(x)

import numpy as np
import plotly.graph_objects as go

x = np.linspace(0, 10, 70)
y = np.sin(x)


def sin_graph(x, y):
    linear_graph = go.Figure(data=go.Scatter(x=x, y=y))
    linear_graph.update_layout(title="Графік sin(x)")
    linear_graph.show()


sin_graph(x, y)
Графік синуса

Графік cos(x)

import numpy as np
import plotly.graph_objects as go

x = np.linspace(0, 10, 70)
y = np.cos(x)


def cos_graph(x, y):
    linear_graph = go.Figure(data=go.Scatter(x=x, y=y))
    linear_graph.update_layout(title="Графік cos(x)")
    linear_graph.show()


cos_graph(x, y)
Графік косинуса

Графік log(x)

import numpy as np
import plotly.graph_objects as go

x = np.linspace(0, 10, 70)
y = np.log(x)


def log_graph(x, y):
    linear_graph = go.Figure(data=go.Scatter(x=x, y=y))
    linear_graph.update_layout(title="Графік log(x)")
    linear_graph.show()


log_graph(x, y)
Графік логарифма

Графік sqrt(x)

import numpy as np
import plotly.graph_objects as go

x = np.linspace(0, 10, 70)
y = np.sqrt(x)


def sqrt_graph(x, y):
    linear_graph = go.Figure(data=go.Scatter(x=x, y=y))
    linear_graph.update_layout(title="Графік sqrt(x)")
    linear_graph.show()


sqrt_graph(x, y)
Графік квадратного кореня

Графік exp(x)

import numpy as np
import plotly.graph_objects as go

x = np.linspace(0, 10, 70)
y = np.exp(x)


def exp_graph(x, y):
    linear_graph = go.Figure(data=go.Scatter(x=x, y=y))
    linear_graph.update_layout(title="Графік exp(x)")
    linear_graph.show()


exp_graph(x, y)
Графік експоненти

Висновок

Головна ціль цієї статті була показати, як можна створювати лінійні графіки у matplotlib та plotly. Також у рамках цієї статті ми ознайомилися з функцією linspace() для генерації послідовностей у numpy. На прикладі роботи з двома бібліотеками візуалізації створили графіки деяких елементарних функцій.

Статті про вітчизняний бізнес та цікавих людей:

Поділись своїми ідеями в новій публікації.
Ми чекаємо саме на твій довгочит!
Magnifique numérique
Magnifique numérique@nocturnal_reader we.ua/nocturnal_reader

Нічний читач

53Довгочити
604Прочитання
17Підписники
Підтримати
На Друкарні з 14 липня

Більше від автора

  • Метод split() у Python

    Всіх вітаю! Сьогодні ми розглянемо метод split() у Python та побачимо, як використовувати її на прикладах.

    Теми цього довгочиту:

    Програмування
  • Створюємо стовпчикові графіки за допомогою plotly

    Всіх вітаю! У цій статті пропоную вам зануритися у графіки та візуалізацію на Python за допомогою plotly. На цей раз ми втілимо графік прослуховувань різних реп виконавців за місяць та графік з оцінками деяких альбомів за сайтом AOTY.

    Теми цього довгочиту:

    Програмування
  • Методи lower(), upper(), islower() та isupper() у Python

    Всіх вітаю! У цій невеличкій статті ми познайомимося із одразу чотирма методами для зміни регістру рядків у Python. Конкретно сьогодні ми ознайомимося із методами lower(), upper(), islower() та isupper().

    Теми цього довгочиту:

    Програмування

Це також може зацікавити:

  • Про закономірне падіння аутсорсу в Україні

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

    Теми цього довгочиту:

    It
  • Історія створення логотипу застосунку

    "Усі ми родом з дитинства," - сказав колись Антуан де Сент-Екзюпері. І як же влучно ця фраза описує історію створення логотипу мого застосунку!

    Теми цього довгочиту:

    Мобільні Застосунки
  • Корисні фішки CSS #2

    Довгочит на тему CSS, у якому розглянемо position absolute, ширину контенту та приховання пустих обʼєктів.

    Теми цього довгочиту:

    Програмування

Коментарі (0)

Підтримайте автора першим.
Напишіть коментар!

Це також може зацікавити:

  • Про закономірне падіння аутсорсу в Україні

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

    Теми цього довгочиту:

    It
  • Історія створення логотипу застосунку

    "Усі ми родом з дитинства," - сказав колись Антуан де Сент-Екзюпері. І як же влучно ця фраза описує історію створення логотипу мого застосунку!

    Теми цього довгочиту:

    Мобільні Застосунки
  • Корисні фішки CSS #2

    Довгочит на тему CSS, у якому розглянемо position absolute, ширину контенту та приховання пустих обʼєктів.

    Теми цього довгочиту:

    Програмування