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

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

  • Вітаємо з Різдвом Христовим!

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

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

    Різдво
  • Каблучки – прикраси, які варто купувати

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

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

    Як Вибрати Каблучку
  • П'ять помилок у виборі домашнього текстилю, які псують комфорт сну

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

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

    Домашній Текстиль
  • Як знайти житло в Києві

    Переїжджаєте до Києва і шукаєте житло? Дізнайтеся, як орендувати чи купити квартиру, перевірити власника та знайти варіанти, про які зазвичай не говорять.

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

    Агентство Нерухомості
  • Як заохотити дитину до читання?

    Як залучити до читання сучасну молодь - поради та факти. Користь читання для дітей - основні переваги. Розвиток дітей - це наше майбутнє.

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

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

Нічний читач

335Прочитань
19Автори
9Читачі
На Друкарні з 14 липня

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

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

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

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

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