为了账号安全,请及时绑定邮箱和手机立即绑定

Matplotlib:注释3D散点图

Matplotlib:注释3D散点图

慕侠2389804 2019-10-09 15:10:24
我正在尝试使用Matplotlib生成3D散点图。我想在此处注释单个点,例如2D情况: Matplotlib:如何为散点图放置单个标签。我尝试使用此功能,并查阅了Matplotlib,但发现该库似乎不支持3D注释。有谁知道如何做到这一点?谢谢!
查看完整描述

3 回答

?
墨色风雨

TA贡献1853条经验 获得超6个赞

计算该点的2D位置,并使用它创建注释。如果需要与图形交互,则可以在释放鼠标时重新计算位置。


import pylab

from mpl_toolkits.mplot3d import Axes3D

from mpl_toolkits.mplot3d import proj3d

fig = 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 point


x2, 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()


查看完整回答
反对 回复 2019-10-09
  • 3 回答
  • 0 关注
  • 977 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信