Pylab或mplot3d:索引作为标记

1 投票
1 回答
511 浏览
提问于 2025-04-17 23:21

在使用pylab或mplot3d绘制列表时(无论是2D还是3D散点图),有没有办法用列表中的索引作为标记?或者有没有其他方法(或者其他库)可以让观众明白列表中的哪个点对应图表上的哪个点。

我这里附上了一个3D散点图作为参考。我希望能把蓝色点的标记改成列表中的索引。

3d scatter plot

1 个回答

2

当然,你只需要为每个点单独调用一次 plot 函数。

不过,由于每个点的标记都不一样,渲染的速度会比较慢。如果你有几千个点,这样做可能就不太合适了。其实到那时候,你也看不清楚那些数字。

举个例子:

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

num = 30
t = np.linspace(0, 10*np.pi, num)
x, y = np.cos(t), np.sin(t)

fig, ax = plt.subplots(subplot_kw=dict(projection='3d'))
for i in range(num):
    ax.plot([x[i]], [y[i]], [t[i]], marker='${}$'.format(i),
            markersize=12, color='black')
plt.show()

enter image description here

撰写回答