Plotly - 3D 散点图和表面图
本章将介绍三维 (3D) 散点图和 3D 曲面图以及如何借助 Plotly 绘制它们。
3D 散点图
三维 (3D) 散点图类似于散点图,但有三个变量 - x、y 和 z 或 f(x, y) 是实数。该图可以表示为三维笛卡尔坐标系中的点。它通常使用透视方法(等距或透视)在二维页面或屏幕上绘制,以便其中一个维度看起来超出页面。
3D 散点图用于在三个轴上绘制数据点,以试图显示三个变量之间的关系。数据表中的每一行都由一个标记表示,该标记的位置取决于其在X、Y 和 Z 轴上设置的列中的值。
可以设置第四个变量以对应于标记的颜色或大小,从而为绘图添加另一个维度。不同变量之间的关系称为相关性。
Scatter3D 轨迹是 go.Scatter3D() 函数返回的图形对象。此函数的强制参数是 x、y 和 z,它们每个都是列表或数组对象。
例如 −
import plotly.graph_objs as go import numpy as np z = np.linspace(0, 10, 50) x = np.cos(z) y = np.sin(z) trace = go.Scatter3d( x = x, y = y, z = z,mode = 'markers', marker = dict( size = 12, color = z, # set color to an array/list of desired values colorscale = 'Viridis' ) ) layout = go.Layout(title = '3D Scatter plot') fig = go.Figure(data = [trace], layout = layout) iplot(fig)
代码的输出如下所示 −
3D 表面图
表面图是三维数据的图表。在表面图中,每个点由 3 个点定义:其纬度、经度和高度(X、Y 和 Z)。表面图不显示单个数据点,而是显示指定的因变量 (Y)和两个自变量(X 和 Z)之间的函数关系。此图是轮廓图的配套图。
这里,是一个 Python 脚本,用于呈现简单的表面图,其中 y 数组 是 x 的转置,z 计算为 cos(x2+y2)
import numpy as np x = np.outer(np.linspace(-2, 2, 30), np.ones(30)) y = x.copy().T # transpose z = np.cos(x ** 2 + y ** 2) trace = go.Surface(x = x, y = y, z =z ) data = [trace] layout = go.Layout(title = '3D Surface plot') fig = go.Figure(data = data) iplot(fig)
下面提到的是上面解释的代码的输出−