直接上代码:
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
line, = ax.plot([1, 2, 3], label='Line 1')
ax.legend(draggable=True)
legend = ax.get_legend()
legend_bbox = legend.get_window_extent()
def call_move(event):
axtemp = event.inaxes
mouse_x = event.x
mouse_y = event.y
print(f"鼠标_x={mouse_x}")
print(f"鼠标_y={mouse_y}")
if axtemp and axtemp.get_legend():
legend_bbox = axtemp.get_legend().get_window_extent()
left_bottom = legend_bbox.get_points()[0]
right_top = legend_bbox.get_points()[1]
if left_bottom[0] <= mouse_x <= right_top[0] and left_bottom[1] <= mouse_y <= right_top[1]:
print("鼠标点击在图例矩形区域内。")
else:
print("鼠标点击在图例矩形区域外。")
fig.canvas.mpl_connect('button_press_event', call_move)
plt.show()