Jupyter Notebook: plt.annotate().draggable() 不工作

1 投票
1 回答
23 浏览
提问于 2025-04-14 17:54

我正在尝试使用 plt.annotate().draggable() 这个功能。

我在下面的示例代码中进行了测试:

import matplotlib.pyplot as plt

plt.plot([1, 2, 3, 4])
plt.annotate('my annotation', xy=(3,4), textcoords='data').draggable()
plt.ylabel('some numbers')
plt.show()

在这里输入图片描述

但是,这个功能在 Jupyter Notebook 中不起作用。

当我创建图表时,注释无法互动,所以我不能拖动它。

我该怎么做才能让它正常工作呢?

1 个回答

1

你需要使用 widget 这个后端。

你可以在控制台里安装它:

activate base
conda install -c conda-forge ipympl

然后在 Jupyter Notebook 里重启内核,并在开头添加一个魔法命令:

%matplotlib widget

放在最前面:

%matplotlib widget
import matplotlib.pyplot as plt

plt.plot([1, 2, 3, 4])
plt.annotate('my annotation', xy=(3,4), textcoords='data').draggable()
plt.ylabel('some numbers')

(不需要 plt.show() 这个命令。)

撰写回答