Всіх вітаю! У цій невеличкій статті ми розглянемо як створювати лінійні графіки за допомогою бібліотеки matplotlib та plotly. Створимо графіки деяких математичних функцій, що звуться елементарними та дізнаємося, як генерувати послідовності за допомогою numpy.
Візуалізація з matplotlib
Встановлення matplotlib
Windows:
pip install matplotlibMacOS:
pip3 install matplotlibLinux:
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 numpyMacOS:
pip3 install numpyLinux:
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()
Графік 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 plotlyMacOS:
pip3 install plotlyLinux:
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
Графік 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. На прикладі роботи з двома бібліотеками візуалізації створили графіки деяких елементарних функцій.