Шаг 64.
Язык Python. Визуализация данных. Библиотека Matplotlib. Построение 3D-графиков. Работа с mplot3d Toolkit. Точечный график (диаграмма рассеяния)
На этом шаге мы рассмотрим построение такого графика.
Для построения диаграммы рассеяния используется функция scatter() из Axes3D:
Axes3D.scatter(self, xs, ys, zs=0, zdir='z', s=20, c=None,
depthshade=True, *args, **kwargs)
Параметры функции Axes3D.scatter():
- xs, ys: 1D-массив
- Координаты точек по осям х и у.
- zs: число или 1D-массив, optional; значение по умолчанию: 0
- Координаты точек по оси z. Если передано скалярное значение, то оно будет присвоено всем точкам графика.
- zdir: {'x', 'y', 'z', '-x', '-y', '-z'}, optional; значение по умолчанию 'z'
- Ось, которая будет принята за z направление.
- s: число или массив, optional; значение по умолчанию 20
- Размер маркера.
- с: цвет (смотри 18 шаг), массив чисел, массив цветовых элементов, optional
- Цвет маркера. Возможные значения:
- строковое значение цвета для всех маркеров;
- массив строковых значений цвета;
- массив чисел, которые могут быть отображены в цвета через функции cmap() и norm();
- 2D-массив, элементами которого являются RGB или RGBA;
- depthshade: bool, optional
- Затенение маркеров для придания эффекта глубины.
- **kwargs
- Дополнительные аргументы, аналогичные тем, что используются в функции scatter() для построения двумерных графиков.
Приведем простой пример использования этой функции:
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
np.random.seed(123)
x = np.random.randint(-5, 5, 40)
y = np.random.randint(0, 10, 40)
z = np.random.randint(-5, 5, 40)
s = np.random.randint(10, 100, 40)
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.scatter(x, y, z, s=s)
plt.show()
Архив с файлом можно взять
здесь.
Результат работы приложения изображен на рисунке 1.
Рис.1. Демонстрация работы функции Axes3D.scatter()
На следующем шаге мы рассмотрим построение каркасной поверхности.
Предыдущий шаг
Содержание
Следующий шаг