Matplotlib: 2D-данные на трехмерной диаграмме

PythonPythonBeginner
Практиковаться сейчас

This tutorial is from open-source community. Access the source code

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом практическом занятии показано, как нарисовать 2D-данные на выбранных осях трехмерной диаграммы с использованием ключевого слова zdir в ax.plot. Библиотека matplotlib в Python используется для создания трехмерной диаграммы.

Советы по работе с ВМ

После запуска виртуальной машины щелкните в левом верхнем углу, чтобы переключиться на вкладку Ноутбук и получить доступ к Jupyter Notebook для практики.

Иногда вам может потребоваться подождать несколько секунд, пока Jupyter Notebook не загрузится полностью. Валидация операций не может быть автоматизирована из-за ограничений Jupyter Notebook.

Если вы сталкиваетесь с проблемами во время обучения, не стесняйтесь обращаться к Labby. Оставьте отзыв после занятия, и мы оперативно решим проблему для вас.

Импорт библиотек

Первым шагом является импорт необходимых библиотек. Для построения трехмерной графика нам нужны matplotlib и numpy.

import matplotlib.pyplot as plt
import numpy as np

Создание трехмерной диаграммы

Вторым шагом является создание трехмерной диаграммы с использованием ax = plt.figure().add_subplot(projection='3d').

ax = plt.figure().add_subplot(projection='3d')

Построение 2D-данных на трехмерной диаграмме

Третий шаг - это построение 2D-данных на трехмерной диаграмме с использованием ax.plot и ax.scatter. Функция ax.plot строит синусоидальную кривую по осям x и y. Функция ax.scatter строит точечные данные по осям x и z.

## Plot a sin curve using the x and y axes.
x = np.linspace(0, 1, 100)
y = np.sin(x * 2 * np.pi) / 2 + 0.5
ax.plot(x, y, zs=0, zdir='z', label='curve in (x, y)')

## Plot scatterplot data (20 2D points per colour) on the x and z axes.
colors = ('r', 'g', 'b', 'k')

## Fixing random state for reproducibility
np.random.seed(19680801)

x = np.random.sample(20 * len(colors))
y = np.random.sample(20 * len(colors))
c_list = []
for c in colors:
    c_list.extend([c] * 20)
## By using zdir='y', the y value of these points is fixed to the zs value 0
## and the (x, y) points are plotted on the x and z axes.
ax.scatter(x, y, zs=0, zdir='y', c=c_list, label='points in (x, z)')

Настройка диаграммы

Четвёртым шагом является настройка диаграммы путём добавления легенды, установки пределов осей и меток, а также изменения угла обзора.

## Make legend, set axes limits and labels
ax.legend()
ax.set_xlim(0, 1)
ax.set_ylim(0, 1)
ax.set_zlim(0, 1)
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')

## Customize the view angle so it's easier to see that the scatter points lie
## on the plane y=0
ax.view_init(elev=20., azim=-35, roll=0)

plt.show()

Просмотр диаграммы

Последним шагом является просмотр трехмерной диаграммы путём запуска кода.

Резюме

В этом практическом занятии мы узнали, как построить 2D-данные на выбранных осях трехмерной диаграммы с использованием ключевого слова zdir в ax.plot. Мы также узнали, как настраивать диаграмму путём добавления легенды, установки пределов осей и меток, а также изменения угла обзора.