В принципе, вы можете использовать параметр pad
для определения размера круга.Однако это тогда относительно этикетки.Т.е. маленький ярлык будет иметь меньший круг вокруг него при том же значении pad
, чем больший ярлык.Также единицами pad
являются размеры шрифта (т. Е. Если у вас размер шрифта 10pt, отступ 1
будет соответствовать 10pt).
import numpy as np
import matplotlib.pyplot as plt
points = [["A", 0.2, 0.25, 0], # zero radius
["long label", 0.4, 0.25, 0], # zero radius
["label1", 0.6, 0.25, 1]] # one radius
for point in points:
plt.text(point[1], point[2], point[0], ha="center", va="center",
bbox = dict(boxstyle=f"circle,pad={point[3]}", fc="lightgrey"))
plt.show()

Я не знаю, насколько это желательно.
Полагаю, обычно вы предпочитаете создать диаграмму рассеяния в тех же позициях, что и текст
import numpy as np
import matplotlib.pyplot as plt
points = [["A", 0.2, 0.25, 100], # 5 pt radius
["long label", 0.4, 0.25, 100], # 5 pt radius
["label1", 0.6, 0.25, 1600]] # 20 pt radius
data = np.array([l[1:] for l in points])
plt.scatter(data[:,0], data[:,1], s=data[:,2], facecolor="gold")
for point in points:
plt.text(point[1], point[2], point[0], ha="center", va="center")
plt.show()
