Python 三维参数图中某些点的标注

Python 三维参数图中某些点的标注,python,matplotlib,annotate,Python,Matplotlib,Annotate,我有这个3D图 import matplotlib.pyplot as plt import numpy as np from mpl_toolkits.mplot3d import Axes3D from matplotlib.patches import FancyArrowPatch from mpl_toolkits.mplot3d import proj3d t = np.linspace(0,2*np.pi, 40) # Position equations def rx(t):

我有这个3D图

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

t = np.linspace(0,2*np.pi, 40)

# Position equations
def rx(t):
    return t * np.cos(t)
def ry(t):
    return t * np.sin(t)

fig = plt.figure(figsize=(10,10))
axes = fig.gca(projection='3d')
当图形运行时,我试图在图形中的某些点标记
t
,但它没有显示出来

例如,尝试将t=2pi/3标记为文本

axes.plot(rx(t), ry(t), t, c='k')
axes.annotate(r'$t = 3 \pi/2$', xy=(rx(3*np.pi/2), ry(3*np.pi/2))
plt.xlim(-2*np.pi,2*np.pi)    
plt.ylim(-6,6)
plt.show

有人知道如何解决这个问题吗?

刚刚从中提取并对文本大小进行了一些调整

标记点的字符串是
'{:>10f}'。格式(t_val)
,您可以将其更改为任何您想要的格式

t_values = [np.pi/3, 2*np.pi/3, np.pi]
for t_val in t_values:
    axes.scatter(rx(t_val),ry(t_val),t_val,color='r') 
    axes.text(rx(t_val),ry(t_val),t_val,'{:>10f}'.format(t_val), size=10, zorder=1, color='k') 

axes.plot(rx(t), ry(t), t)

请参见此处的答案:;看起来3d实际上不支持
注释
,但您可以使用
文本
方法。@cphlewis-hmm,这看起来很烦人。我看看我能做些什么。你的问题是你试图给
t=2pi/3
,但代码是
3*np.pi/2
,这是真的,我的意思是把这个点标记为文本。为了清晰起见,我将进行编辑。