プロットされたポイントの真上にすべてのテキストを配置すれば、問題はないはずだと思います。たとえば、次のことを試してください。
for i, j in zip(path_loss_list,throughput_values):
plt.annotate( "%s" %str(j), xy=(i,j), xytext=(0, 5), ha='right', textcoords='offset points')
ただし、これにより、右側のポイントと一部重複する可能性があります。その場合は、変更できxytext = (0, 8).
ます。すべてのポイントに対して一貫した解決策がない可能性があります。したがって、次のように、テキストの高さをポイントごとに指定する必要がある場合があります。
for i, j in zip(path_loss_list,throughput_values):
if not j> 59:
plt.annotate( "%s" %str(j), xy=(i,j), xytext=(-5, 5), ha='right', textcoords='offset points')
else:
plt.annotate( "%s" %str(j), xy=(i,j), xytext=(0, 5), ha='right', textcoords='offset points')
これにより、一番上のポイントのテキストが移動します。y=54.615を推定できます。