python如何移动图片_如何在matplotlib中创建可拖动的图例? - python

我正在matplotlib中的轴对象上绘制图例,但是声称将其放置在智能位置的默认位置似乎不起作用。理想情况下,我希望图例可由用户拖动。如何才能做到这一点?

参考方案

注意:现在已内置到matplotlib中

leg = plt.legend()

if leg:

leg.draggable()

将按预期工作

好吧,我发现解决方案的点点滴滴分散在邮件列表中。我提出了一个很好的模块化代码块,您可以插入并使用...在这里:

class DraggableLegend:

def __init__(self, legend):

self.legend = legend

self.gotLegend = False

legend.figure.canvas.mpl_connect('motion_notify_event', self.on_motion)

legend.figure.canvas.mpl_connect('pick_event', self.on_pick)

legend.figure.canvas.mpl_connect('button_release_event', self.on_release)

legend.set_picker(self.my_legend_picker)

def on_motion(self, evt):

if self.gotLegend:

dx = evt.x - self.mouse_x

dy = evt.y - self.mouse_y

loc_in_canvas = self.legend_x + dx, self.legend_y + dy

loc_in_norm_axes = self.legen

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值