Как удалить точки данных из текстовой аннотации? - PullRequest
0 голосов
/ 24 апреля 2018

Следующий скрипт генерирует точечную диаграмму с аннотированными точками данных.Я хотел бы удалить маркеры круга с графика и просто показать метки.

fig, ax = Plot.subplots()
ax.scatter(Y0_mean, Y1_mean)
for i, txt in enumerate(features.playerCountry.unique()):
    country_name = countries_code[countries_code.CountryCode == txt] 
                   ['ctr'].values[0].lower()
    ax.annotate(country_name, (Y0_mean[i], Y1_mean[i]), xytext=(Y0_mean[i], 
               Y1_mean[i]), size=5)

ax.legend(fontsize=8)
fig.savefig(figPath + 'LocationAwareMeanFeatures_ctr'+str(lr), dpi=300)

enter image description here

1 Ответ

0 голосов
/ 24 апреля 2018

Есть 2 варианта.1) не звоните ax.scatter.Это означает, что у вас есть , чтобы самостоятельно установить ограничения осей, чтобы увидеть точки.

y=[2.56422, 3.77284,3.52623,3.51468,3.02199]
x=[0.15, 0.3, 0.45, 0.6, 0.75]
n=[58,651,393,203,123]

fig, ax = plt.subplots()
# ax.scatter(x, y)

for i, txt in enumerate(n):
    ax.annotate(txt, (x[i],y[i]))

ax.set_ylim(2.5,4)

plt.show()

или опция 2) Вызовите ax.scatter, но удалите LineCollections, которые добавляются, выполняя:

y=[2.56422, 3.77284,3.52623,3.51468,3.02199]
x=[0.15, 0.3, 0.45, 0.6, 0.75]
n=[58,651,393,203,123]

fig, ax = plt.subplots()
points = ax.scatter(x, y)

for i, txt in enumerate(n):
    ax.annotate(txt, (x[i],y[i]))

points.remove()

plt.show()

Оба метода дают одинаковый результат (при условии, что вы задаете те же пределы оси в варианте 1, что и в варианте 2):

enter image description here

...