Я использую matplotlib и seaborn, чтобы разбросать график некоторых данных, содержащихся в двух массивах, x и y, (2-мерный график). Проблема здесь в том, что когда дело доходит до отображения меток обеих осей над данными, потому что данные, нанесенные на график, перекрывают значения, поэтому они невидимы.
Я пробовал разные возможности, такие как сброс меток после завершения построения графика и их установка позже или использование аннотаций. В любом случае любой из этих вариантов работал для меня ...
Кусок кода, который я использую для создания этого точечного графика:
sns.set_style("whitegrid")
ax = sns.scatterplot(x=x, y=y, s=125)
ax.set_xlim(-20, 20)
ax.set_ylim(-20, 20)
ax.spines['left'].set_position('zero')
ax.spines['left'].set_color('black')
ax.spines['right'].set_color('none')
ax.yaxis.tick_left()
ax.spines['bottom'].set_position('zero')
ax.spines['bottom'].set_color('black')
ax.spines['top'].set_color('none')
ax.xaxis.tick_bottom()
values = ax.get_xticks()
ax.set_xticklabels(["{0:.0%}".format(x/100) for x in values])
values = ax.get_yticks()
ax.set_yticklabels(["{0:.0%}".format(y/100) for y in values])
ax.tick_params(axis='both', which='major', labelsize=15)
ax.grid(True)
Сгенерированный участок выглядит следующим образом:
Но желаемый результат должен выглядеть примерно так:
Заранее благодарю за любой совет или помощь!