Запретить отображение аннотации вне области графика

Я создаю точечный график с аннотацией со следующим кодом:

import numpy as np
import matplotlib.pyplot as plt

np.random.seed(12)
plt.scatter(np.random.random(10), np.random.random(10), zorder = 2)
bbox_props = dict(boxstyle = "circle, pad = 10", fc = "w", ec = "k")
plt.annotate("interesting", (0.6, 0.8), bbox = bbox_props, zorder = 1)
plt.show()

Образец вывода:

введите описание изображения здесь

Как вы предотвращаете отображение аннотации вне графика? Я искал его, но смог найти только противоположный случай, когда люди хотят напечатать аннотацию / текст / легенду вне графика.

1 ответ

Решение

Вам нужно использовать clip_on аргумент plt.annotate:

import numpy as np
import matplotlib.pyplot as plt

np.random.seed(12)
plt.scatter(np.random.random(10), np.random.random(10), zorder = 2)
bbox_props = dict(boxstyle = "circle, pad = 10", fc = "w", ec = "k")
plt.annotate("interesting", (0.6, 0.8), bbox = bbox_props, zorder = 1, clip_on=True)
plt.show()

Другие вопросы по тегам