Шаг 66.
Язык Python. Визуализация данных. Библиотека Matplotlib. Построение 3D-графиков. Работа с mplot3d Toolkit. Поверхность
   
На этом шаге мы рассмотрим функцию построения поверхности.
   
Для построения поверхности используется функция plot_surface() из Axes3D:
  Axes3D.plot_surface(self, X, Y, Z, *args, norm=None, vmin=None, 
    vmax=None, lightsource=None, **kwargs)
 
   
Параметры функции Axes3D.plot_surface(): 
 -  X, Y, Z: 2D-массивы
 
 -  Данные для построения поверхности.
 
 -  rcount, ccount: int, значение по умолчанию: 50
 
 -  Максимальное количество элементов каркаса, которое будет использовано в каждом из направлений.
 
 -  rstride, cstride: int
 
 -  Параметры, определяющие величину шага, с которым будут браться элементы строки/столбца из переданных массивов. Параметры 
rstride, cstride и rcount, ccount являются взаимоисключающими.
 
 -  color: один из доступных способов задания цвета (смотри 18 шаг)
 
 -  Цвет для элементов поверхности.
 
 -  cmap: str или Colormap, optional
 
 -  Цветовая карта для поверхности (смотри 59 шаг)
 
 -  facecolors: массив цветовых элементов
 
 -  Индивидуальный цвет для каждого элемента поверхности.
 
 -  norm: Normalize
 
 -  Нормализация для colormap.
 
 -  vmin, vmax: float
 
 -  Границы нормализации.
 
 -  shade: bool; значение по умолчанию: True
 
 -  Использование тени для facecolors.
 
 -  lightsource: LightSource
 
 -  Объект класса LightSource определяет источник света, используется, только если shade=True.
 
 -  **kwargs
 
 -  Дополнительные аргументы, которые являются параметрами конструктора класса Poly3DCollection.
 
Приведем пример использования этой функции:
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
u, v = np.mgrid[0:2 * np.pi:20j, 0:np.pi:10j]
x = np.cos(u) * np.sin(v)
y = np.sin(u) * np.sin(v)
z = np.cos(v)
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot_surface(x, y, z, cmap='inferno')
plt.show()
Архив с файлом можно взять 
здесь.
   
Результат работы приложения изображен на рисунке 1.

Рис.1. Демонстрация работы функции Axes3D.plot_surface()
   
Со следующего шага мы начнем рассматривать возможности библиотеки Seaborn.
Предыдущий шаг 
 
Содержание 
 
Следующий шаг