墨色风雨
计算该点的2D位置,并使用它创建注释。如果需要与图形交互,则可以在释放鼠标时重新计算位置。import pylabfrom mpl_toolkits.mplot3d import Axes3Dfrom mpl_toolkits.mplot3d import proj3dfig = pylab.figure()ax = fig.add_subplot(111, projection = '3d')x = y = z = [1, 2, 3]sc = ax.scatter(x,y,z)# now try to get the display coordinates of the first pointx2, y2, _ = proj3d.proj_transform(1,1,1, ax.get_proj())label = pylab.annotate( "this", xy = (x2, y2), xytext = (-20, 20), textcoords = 'offset points', ha = 'right', va = 'bottom', bbox = dict(boxstyle = 'round,pad=0.5', fc = 'yellow', alpha = 0.5), arrowprops = dict(arrowstyle = '->', connectionstyle = 'arc3,rad=0'))def update_position(e): x2, y2, _ = proj3d.proj_transform(1,1,1, ax.get_proj()) label.xy = x2,y2 label.update_positions(fig.canvas.renderer) fig.canvas.draw()fig.canvas.mpl_connect('button_release_event', update_position)pylab.show()