Друкарня від 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. На прикладі роботи з двома бібліотеками візуалізації створили графіки деяких елементарних функцій.

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

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

Нічний читач

42Довгочити
479Прочитання
13Підписники
Підтримати
На Друкарні з 14 липня

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

  • Метод replace() у Python

    Всіх вітаю! У даній статті ми розберемо вбудований метод для роботи з рядками — метод replace(). У рамках матеріалу ми наведемо три приклади роботи з даним методом та визначимо для себе суть самого метода.

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

    Програмування
  • Перетворення стилю графіків у науковий формат

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

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

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

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

  • Spring Statemachine

    Пост про Spring Statemachine. Глосарій. Моніторинг. Безпека. Детальний розбір прикладу комплексної машини станів.

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

    Java

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

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

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

  • Spring Statemachine

    Пост про Spring Statemachine. Глосарій. Моніторинг. Безпека. Детальний розбір прикладу комплексної машини станів.

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

    Java