#python #matplotlib
#python #matplotlib
Вопрос:
Данные находятся в табличной переменной
table=list(zip(cities1, coords[:, 0], coords[:, 1]))
[('acura', -0.17547704744098544, -0.6166976976480806),
('audi', 0.3532486941005613, -0.300526194463427),
('bmw', 0.7795858855225921, 0.22066166376952917),
('honda', -0.7664008669199922, -0.08707404835184429),
('hyundai', -0.0976861347111208, 1.1308973697451388),
('infiniti', 0.25553899375818806, -0.8313428105248483),
('kia', 0.20783662466651553, 1.1170395030334848),
('nissan', -0.5823225686931098, -0.5084012295485035),
('pontiac', 0.6573317212955139, -0.6012122629097848),
('toyota', -0.6316553015781629, 0.47665570689833636)]
Затем я устанавливаю шрифт графика
font0 = FontProperties()
font = font0.copy()
## Change the size of the font
font.set_size('xx-large')
Затем я создаю график с помощью .annotate
fig, ax = plt.subplots(figsize=(5, 5))
ax.set(xlim=(-2, 2), ylim=(-2, 2))
for label, x, y in zip(cities1, coords[:, 0], coords[:, 1]):
ax.annotate(
label,
xy = (x, y), xytext = (-20, 20), xycoords='axes fraction',
fontproperties=font,
textcoords = 'offset points', ha = 'right', va = 'bottom',
bbox = dict(boxstyle = 'round,pad=0.5', fc = 'yellow', alpha = 0.5),
arrowprops = dict(arrowstyle = '->', connectionstyle = 'arc3,rad=0',))
plt.savefig('MDS.png')
Я не понимаю, где код идет не так в последнем блоке кода? Я предполагаю, что именно в этом заключается ошибка, поскольку из-за этого график выглядит следующим образом.
Ответ №1:
Если вы измените ссылку на ось на «данные», вы получите пронумерованный график.
ax.annotate(
label,
xy = (x, y), xytext = (-20, 20), xycoords='data', # update
fontproperties=font,
textcoords = 'offset points', ha = 'right', va = 'bottom',
bbox = dict(boxstyle = 'round,pad=0.5', fc = 'yellow', alpha = 0.5),
arrowprops = dict(arrowstyle = '->', connectionstyle = 'arc3,rad=0',))