在 3D 参数图中标记某些点
Labeling certain points in 3D parametric graph
我有这个 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
有谁知道如何解决这个问题?
刚刚从 this answer 中提取内容并对文本大小进行了一些调整。
标记点的字符串是'{:>10f}'.format(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 图
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
有谁知道如何解决这个问题?
刚刚从 this answer 中提取内容并对文本大小进行了一些调整。
标记点的字符串是'{:>10f}'.format(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)