Zastosowanie annotate
.
W rzeczywistości prawie nigdy nie używam text
. Nawet gdy chcę umieścić dane we współrzędnych danych, zwykle chcę je przesunąć o pewną stałą odległość w punktach, co jest znacznie łatwiejsze z annotate
.
Jako szybki przykład:
import matplotlib.pyplot as plt
fig, axes = plt.subplots(nrows=2, subplot_kw=dict(aspect=1))
axes[0].plot(range(1, 4))
axes[1].plot(range(10, 40, 10), range(1, 4))
for ax in axes:
ax.annotate('Test', xy=(1, 0), xycoords='axes fraction', fontsize=16,
horizontalalignment='right', verticalalignment='bottom')
plt.show()
Jeśli chcesz to nieco odsunięty od narożnika, można określić przesunięcie przez xytext
kwarg (i textcoords
kontrolować, w jaki sposób wartości xytext
są interpretowane). Jestem również za pomocą ha
i va
skróty do horizontalalignment
i verticalalignment
tutaj:
import matplotlib.pyplot as plt
fig, axes = plt.subplots(nrows=2, subplot_kw=dict(aspect=1))
axes[0].plot(range(1, 4))
axes[1].plot(range(10, 40, 10), range(1, 4))
for ax in axes:
ax.annotate('Test', xy=(1, 0), xycoords='axes fraction', fontsize=16,
xytext=(-5, 5), textcoords='offset points',
ha='right', va='bottom')
plt.show()
Jeśli próbujesz umieścić go poniżej osi, można użyć offsetu, aby umieścić go zestaw odległości poniżej w punktach:
import matplotlib.pyplot as plt
fig, axes = plt.subplots(nrows=2, subplot_kw=dict(aspect=1))
axes[0].plot(range(1, 4))
axes[1].plot(range(10, 40, 10), range(1, 4))
for ax in axes:
ax.annotate('Test', xy=(1, 0), xycoords='axes fraction', fontsize=16,
xytext=(0, -15), textcoords='offset points',
ha='right', va='top')
plt.show()
Aby uzyskać więcej informacji, zapoznaj się także z numerem Matplotlib annotation guide.
To jest świetna odpowiedź i przykłady. Spróbuję użyć adnotacji zamiast tekstu. Dziękuję Ci bardzo. – Tetsuro
Świetna odpowiedź! Dzięki! – HyperCube