Шаг 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()

    На следующем шаге мы рассмотрим построение каркасной поверхности.




Предыдущий шаг Содержание Следующий шаг