跳转至

在 Jupyter 笔记本中制作 3D 互动 Matplotlib 图

原文:https://www.geesforgeks.org/make-3d-interactive-matplotlib-plot-in-jupyter-notebook/

Matplotlib 是一个数据可视化库。不把数据可视化,就很难分析/洞察数据。而 matplotlib 是一个用 python 做数据可视化分析的很棒的库。使用 matplotlib,我们可以绘制一维、二维甚至三维数据。在本文中,我们将学习如何使用 matplotlib 绘制各种三维图。要用 python 绘制三维图,我们需要从 python 的 matplotlib 库的标准安装中导入 mplot3d 库。

由于 matplotlib 是一个第三方库,它没有标准的 python 安装,因此您需要在阅读本文之前安装 matplotlib。下面是可以用来安装 matplotlib 库的命令。

语法:

pip3 安装 matplotlib

要使绘图具有交互性,您只需安装另一个名为 ipympl 的库,即交互式 python matplotlib。

语法:

pip3 安装 ipympl

创建三维图形时使用轴 3D.plot() 功能。

语法:

三维打印轴(xs、sys、zs、args、*kwargs)

参数:

  • xs: 顶点的 x 坐标值。
  • ys :顶点的 y 坐标值。
  • zs:z 坐标值,所有点一个或每个点一个。

要生成交互式三维图,首先导入必要的包并创建随机数据集。现在使用 mplot3d 库中的 Axes3D(图)函数,我们可以直接生成所需的图。将数据传递到三维图,并配置标题和标签。

注意:我们必须需要添加% matplotlib 小部件】,这是一个 jupyter 魔法小部件,用于告诉 Jupyter 使用交互式后端进行剧情。我们必须将其添加到脚本的顶部,以在 ipython 笔记本(即 Jupyter 笔记本、Google Colab、Kaggle Kernel 等)中创建一个交互式剧情。)将图形渲染为交互式图形。

下面给出了一些同样的实现。

示例:交互式散点图

蟒蛇 3

# creating 3d plot using matplotlib 
# in python

# for creating a responsive plot
%matplotlib widget

# importing required libraries
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt

# creating random dataset
xs = [14, 24, 43, 47, 54, 66, 74, 89, 12,
      44, 1, 2, 3, 4, 5, 9, 8, 7, 6, 5]

ys = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 6, 3,
      5, 2, 4, 1, 8, 7, 0, 5]

zs = [9, 6, 3, 5, 2, 4, 1, 8, 7, 0, 1, 2, 
      3, 4, 5, 6, 7, 8, 9, 0]

# creating figure
fig = plt.figure()
ax = Axes3D(fig)

# creating the plot
plot_geeks = ax.scatter(xs, ys, zs, color='green')

# setting title and labels
ax.set_title("3D plot")
ax.set_xlabel('x-axis')
ax.set_ylabel('y-axis')
ax.set_zlabel('z-axis')

# displaying the plot
plt.show()

输出:

Jupyter 笔记本中的交互式 3D 绘图

示例:交互式条形图

计算机编程语言

# creating 3d bar plot using matplotlib 
# in python

# to interacte  with plot
%matplotlib widget

# importing required libraries
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np

# creating random dataset
xs = [2, 3, 4, 5, 1, 6, 2, 1, 7, 2]
ys = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
zs = np.zeros(10)
dx = np.ones(10)
dy = np.ones(10)
dz = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# creating figure
figg = plt.figure()
ax = figg.add_subplot(111, projection='3d')

# creating the plot
plot_geeks = ax.bar3d(xs, ys, zs, dx, 
                      dy, dz, color='green')

# setting title and labels
ax.set_title("3D bar plot")
ax.set_xlabel('x-axis')
ax.set_ylabel('y-axis')
ax.set_zlabel('z-axis')

# displaying the plot
plt.show()

输出:

交互式 3D 绘图



回到顶部