Центрируйте этикетку внутри круга с помощью matplotlib

Я хотел бы построить круги с помощью matplotlib (патчи) и аннотировать их. Аннотация будет словом, и оно должно быть в центре круга.

Пока что я могу нарисовать круг и аннотировать его: введите описание изображения здесь

Но аннотация не центрирована ни по горизонтали, ни по вертикали. Для этого мне понадобится доступ к размерам текста.

Есть ли способ получить доступ к размерам текста в "системах координат"? Например, если круг имеет радиус 15 (15 символов, а не пикселей), текст будет иметь длину 12 элементов (не пикселей).

Я открыт для любых других предложений о том, как это сделать.

Вот мой код:

import matplotlib as mpl
import matplotlib.pyplot as plt
from matplotlib.figure import Figure

fig, ax = plt.subplots()

ax = fig.add_subplot(111)

x = 0
y = 0

circle = plt.Circle((x, y), radius=1)

ax.add_patch(circle)

label = ax.annotate("cpicpi", xy=(x, y), fontsize=30)

ax.axis('off')
ax.set_aspect('equal')
ax.autoscale_view()

plt.show()
4 голоса | спросил JPFrancoia 4 Maypm18 2018, 13:36:00

2 ответа


0
Вам необходимо установить горизонтальное выравнивание в ---- +: = 0 =: + ---- используя ---- +: = 1 =: + ---- .То же самое можно сделать для вертикального направления, если необходимо, используя аргумент ---- +: = 2 =: + ----введите описание изображения здесь
ответил DavidG 4 Maypm18 2018, 13:48:50
0
Вы можете добавить два дополнительных аргумента к вызову ---- +: = 0 =: + ---- :
ответил Nicola Sap 4 Maypm18 2018, 13:50:13

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132