Jak korzystać matplotlib lub pyqtgraph rysowania wykresu takiego: Jak narysować „dwa kierunki szerokości linii” w matplotlib
Linia AB to dwie wskazówki ulica, część zielona reprezentuje kierunek z punktu A do punktu B, czerwona część oznacza B do A, szerokość każdej części reprezentuje natężenie ruchu. Szerokości są mierzone w punkcie, nie zmieniają się przy różnych poziomach zoomu ani w ustawieniach dpi:.
To tylko przykład, w rzeczywistości mam hunderd z ulic. Ten rodzaj działki jest bardzo powszechny w wielu oprogramowaniach o ruchu. Próbowałem użyć patheffect matplotlib, ale wynik jest sfrustrowany:
from matplotlib import pyplot as plt
import matplotlib.patheffects as path_effects
x=[0,1,2,3]
y=[1,0,0,-1]
ab_width=20
ba_width=30
fig, axes= plt.subplots(1,1)
center_line, = axes.plot(x,y,color='k',linewidth=2)
center_line.set_path_effects(
[path_effects.SimpleLineShadow(offset=(0, -ab_width/2),shadow_color='g', alpha=1, linewidth=ab_width),
path_effects.SimpleLineShadow(offset=(0, ba_width/2), shadow_color='r', alpha=1, linewidth=ba_width),
path_effects.SimpleLineShadow(offset=(0, -ab_width), shadow_color='k', alpha=1, linewidth=2),
path_effects.SimpleLineShadow(offset=(0, ba_width), shadow_color='k', alpha=1, linewidth=2),
path_effects.Normal()])
axes.set_xlim(-1,4)
axes.set_ylim(-1.5,1.5)
Jeden pomysł przyszedł do mnie do podjęcia każdej części wiersza jako samodzielny linii i przeliczyć to stanowisko przy zmianie poziomu powiększenia, ale to zbyt skomplikowane i powolne.
Czy istnieje jakikolwiek łatwy sposób użycia matplotlib lub pyqtgraph? Każda sugestia zostanie doceniona!
Twoje dane nie działają – Bart
Przepraszam, naprawiam. @ Bart – Macer
Nie, nadal nie działa. Dlaczego nie skorzystać z uploader obrazu dostarczony przez stackoverflow? – Bart