我偶尔会看到两个二维散点图在 3D 空间中相互叠加的图表,以便可以链接对应的点。这些通常采用两个网络重叠的网络形式。例如:
参考:https ://satijalab.org/seurat/v3.0/pbmc3k_tutorial.html
参考:https ://image.slidesharecdn.com/2007mauricioarango-end-to-endqosviaoverlaynetworksandbandwidthon-demand-091102230540-phpapp02/95/providing-endtoend-network-qos-via-overlay-networks-and-bandwidth-ondemand-mauricio- arango-2007-5-728.jpg?cb=1257203157
我知道我可以在二维图中任意添加一个常见的第三维来得到这样的图:
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np
def randrange(n, vmin, vmax):
return (vmax - vmin)*np.random.rand(n) + vmin
n = 100
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
xs = randrange(n, 23, 32)
ys = randrange(n, 0, 100)
zs = np.append(np.repeat(1, 50), np.repeat(2, 50))
for c, m in [('r', 'o'), ('b', '^')]:
ax.scatter(xs, ys, zs, c=c, marker = m)
然后连接相关点,但我认为可能有一种更直接的方法可以在 R 或 python 中构建此类图像?