Próbuję adnotować tekst na działkach, aby śledzić krzywiznę linii. Mam następujące działki:Jak opisywać tekst wzdłuż zakrzywionych linii w Pythonie?
I to jest to, co chcę uzyskać, jeśli to naprawić konkretną wartość y dla adnotacji, dla każdej krzywej należy umieścić adnotację wzdłuż krzywej w wymaganej stoku (to znaczy należy do krzywizny krzywej), jak pokazano poniżej:
Kod powtarzalne dla powierzchni bez opisów jest:
import numpy as np
import matplotlib.pyplot as plt
x = np.array([[53.4, 57.6, 65.6, 72.9],
[60.8, 66.5, 73.1, 83.3],
[72.8, 80.3, 87.2, 99.3],
[90.2, 99.7, 109.1, 121.9],
[113.6, 125.6, 139.8, 152]])
y = np.array([[5.7, 6.4, 7.2, 7.8],
[5.9, 6.5, 7.2, 7.9],
[6.0, 6.7, 7.3, 8.0],
[6.3, 7.0, 7.6, 8.2],
[6.7, 7.5, 8.2, 8.7]])
plt.figure(figsize=(5.15, 5.15))
plt.subplot(111)
for i in range(len(x)):
plt.plot(x[i, :] ,y[i, :])
plt.xlabel('X')
plt.ylabel('Y')
plt.show()
Jak umieścić takie teksty w Pythonie przy pomocy matplotlib?
Jak otrzymałeś wartości 7.15, 5.15 i 1.5? –
dobry punkt. Moje parsimony z kopią wklejają kod, który testowałem! Będę teraz ponownie edytować, aby dodać brakujący bit. Odejmowanie 1,5 jest przybliżeniem, aby uzyskać rzeczywisty obszar wykresu. Prawdopodobnie w matplotlib istnieje metoda, która robi to za Ciebie. Alternatywnie może użyć proporcji, w którym to przypadku możesz * 0,7 lub cokolwiek innego, – paddyg
PS po prostu sprawdził matplotlib, a subpozycja wydaje się mieć marginesy 0.12l, 0.9r, 0.1b, 0.9t i używanie 7.15 * 0.78 i 5.15 * 0.8 wydaje siędziałać całkiem dobrze – paddyg