Трехмерный линейный график в Python с использованием matplotlib
Есть много способов создания трехмерных графиков в python, здесь я объясню линейный график с помощью matplotlib. Например, как создать пустую сетку и построить линейный график с использованием случайных данных.
Во-первых, мы должны установить matplotlib, чтобы импортировать инструментарий mplot3d. Mplot3d - это набор инструментов, который поможет matplotlib создать 3 оси на графике. Если вы еще не установили matplotlib, важно установить matplotlib.
Plot 2D or 3D data.
Axes3D.plot(
xs,
ys,
*args,
**kwargs)
Argument Description
xs, ys x, y -- coordinates of vertices
zs z -- value(s), either one for all points or one for each point.
zdir -- Which direction to use as z (‘x’, ‘y’ or ‘z’) when plotting a 2D set.
Как установить matplotlib через pip?
pip install matplotlib
скопируйте эту команду выше, поместите ее в консоль Python и нажмите ввод.
Если вы уже установили matplotlib, вам не нужно устанавливать его снова, просто импортируйте его, используя команду ниже
imoprt matplotlib as plt
Как импортировать модуль mplot3d из matplotlib?
из mpl_toolkits импортировать mplot3d
Теперь давайте посмотрим, как создать пустую сетку для нашего первого 3D-графика.
код -
из mpl_toolkits импортировать mplot3d
импортировать numpy как np
импортировать matplotlib.pyplot как plt
из mpl_toolkits.mplot3d импортировать axes3d
fig = plt.figure ()
ax = plt.axes (projection = ”3d”)
plt.show ()
вывод -
Теперь давайте добавим линию на нашу пустую сетку (по 3 осям).
код -
mpl.rcParams ['legend.fontsize'] = 10
fig = plt.figure ()
ax = fig.gca (projection = '3d')
theta = np.linspace (- 4 * np.pi, 4 * np.pi, 100)
z = np.linspace (-2, 2, 100)
r = z ** 2 + 1
x = r * np.sin (theta)
y = r * np.cos (theta)
ax.plot (x, y, z, label = 'параметрическая кривая')
ax.legend ( )
plt.show ()
вывод -
Следующее изображение-B объединяет 2 графика, один с линией, которая проходит через каждую точку данных, а другой, который рисует точку на каждом из конкретных 1000 значений в этом примере.
(данные в строке генерируются случайным образом с использованием случайной функции)
код -
ax = plt.axes(projection=’3d’)# Data for a three-dimensional line zline = np.linspace(0, 15, 1000) xline = np.sin(zline) yline = np.cos(zline) ax.plot3D(xline, yline, zline, ‘gray’)# Data for three-dimensional scattered points zdata = 15 * np.random.random(100) xdata = np.sin(zdata) + 0.1 * np.random.randn(100) ydata = np.cos(zdata) + 0.1 * np.random.randn(100) ax.scatter3D(xdata, ydata, zdata, c=zdata, cmap=’Greens’);
Вывод -