Jak utworzyć GIF z wykresów Matplotlib w Pythonie?

Technika wizualizacji danych dla dwuwymiarowych szeregów czasowych przy użyciu imageio

GIF utworzony za pomocą Matplotlib i imageio (zdjęcie autora)

Wszyscy wiemy, że wykresy liniowe są najbardziej intuicyjnym sposobem wizualizacji szeregów czasowych. Ale jak zobrazowałbyś szereg czasowy z dwiema cechami, które mają związek, jak współrzędne xiy lub długość i szerokość geograficzna? GIF to świetny sposób na wizualizację dwuwymiarowych danych szeregów czasowych.

GIF to świetny sposób na wizualizację dwuwymiarowych danych szeregów czasowych.

Spójrzmy na następujący przykład.

x = [1, 2, 3, 4, 4, 4, 4, 3, 2, 1, 1, 1, 1]
y = [1, 1, 1, 1, 2, 3, 4, 4, 4, 4, 3, 2, 1]
time = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12

Wykresy liniowe dwóch oddzielnych serii czasowych (zdjęcie autora)

Następnie możesz wykreślić x nad y, co pokazuje związek między tymi dwiema cechami. Ale teraz brakuje ci aspektu czasu.

x nad y (zdjęcie autora)

Aby zobrazować związek między tymi dwiema funkcjami a czasem, możemy użyć GIF-a.

Ten samouczek pokaże Ci, jak szybko utworzyć GIF w Pythonie w trzech prostych krokach.

Jak stworzyć GIF w Pythonie

Możesz utworzyć GIF w Pythonie w zaledwie trzech prostych krokach, korzystając z bibliotek Matplotlib i imageio :

  1. Utwórz funkcję do wykreślania ramek zależnych od czasu za pomocą Matplotlib
  2. Wykreśl wszystkie ramki GIF
  3. Połącz ramki w GIF z imageio

import matplotlib.pyplot as plt
import imageio

Najpierw utworzysz funkcję create_frame(t), która wykreśli pojedynczą klatkę GIF z określonym znacznikiem czasu i zapisze ją pod unikalną nazwą.

Zalecam ustawienie parametrów transparent = Falsei facecolor = 'white'uniknięcie dziwnie wyglądających efektów w twoich GIF-ach z powodu nakładania się pojedynczych przezroczystych ramek.

def create_frame(t):
    fig = plt.figure(figsize=(6, 6))
plt.plot(x[:(t+1)], y[:(t+1)], color = 'grey' )
    plt.plot(x[t], y[t], color = 'black', marker = 'o' )
plt.xlim([0,5])
    plt.xlabel('x', fontsize = 14)
    plt.ylim([0,5])
    plt.ylabel('y', fontsize = 14)
    plt.title(f'Relationship between x and y at step {t}',
              fontsize=14)
    plt.savefig(f'./img/img_{t}.png', 
                transparent = False,  
                facecolor = 'white'
               )
plt.close()

Następnie wszystko, co musisz zrobić, to wykreślić wszystkie klatki GIF.

for t in time:
    create_frame(t)

      
All single frames of the GIF plotted with Matplotlib (Image by the author)

Na koniec wszystko, co musisz zrobić, to zapisać ramki do pliku GIF za pomocą tej mimsavemetody. Możesz dostosować liczbę klatek GIF na sekundę (fps) za pomocą fpsparametru.

imageio.mimsave('./example.gif', # output gif
                frames,          # array of input frames
                fps = 5)         # optional: frames per second

GIF utworzony za pomocą Matplotlib i imageio (zdjęcie autora)

Jeśli chcesz, aby GIF zatrzymał się po ostatniej klatce, dodaj parametr loop = 1do mimsavemetody.

imageio.mimsave('./example.gif', 
                frames, 
                fps = 5, 
                loop = 1)

      
GIF created with Matplotlib and imageio that stops after one loop at the last frame (Image by the author)

Wizualizacja dwuwymiarowych danych szeregów czasowych za pomocą wykresów liniowych może być nieefektywna, ponieważ nie pokazuje relacji między tymi dwiema cechami. Używanie GIF-ów jest lepszą alternatywą do wizualizacji danych dla dwuwymiarowych danych szeregów czasowych, takich jak długość i szerokość geograficzna lub współrzędne x i y.

W tym krótkim samouczku nauczyłeś się, jak stworzyć GIF z Matplotlib i imageio w Pythonie w zaledwie trzech prostych krokach:

  1. Utwórz funkcję do wykreślania ramek zależnych od czasu za pomocą Matplotlib
  2. Wykreśl wszystkie ramki GIF
  3. Połącz ramki w GIF z imageio

Oto zbiór moich innych artykułów dotyczących analizy i prognozowania szeregów czasowych:

Jeśli chcesz otrzymywać moje nowe historie bezpośrednio do swojej skrzynki odbiorczej, zasubskrybuj !

Zostań członkiem Medium, aby przeczytać więcej historii ode mnie i innych pisarzy. Możesz mnie wesprzeć, korzystając z mojego linku polecającego podczas rejestracji. Otrzymam prowizję bez dodatkowych kosztów.

Znajdź mnie na Twitterze , LinkedIn i Kaggle !

Suggested posts

Dwa lata projektowania – dobre, złe i brzydkie…

Dwa lata projektowania – dobre, złe i brzydkie…

„Hej, Siri, zagraj w Me Dive autorstwa Olivii Dean”. W maju 2021 rozpocząłem staż w Future Academy Africa w Akure w Nigerii.

Jak uratować planetę i zarabiać pieniądze

Jak uratować planetę i zarabiać pieniądze

Ile razy bez zastanowienia wyrzuciłeś plastikową butelkę, szklany słoik, aluminiową puszkę lub pakiet zielonej energii? Ile razy chciałeś dostać coś w zamian za ich recykling? Jeśli jesteś jak większość ludzi, odpowiedź brzmi prawdopodobnie wiele razy. Recykling jest często postrzegany jako kłopot, przykry obowiązek lub obowiązek, który nie przynosi żadnych natychmiastowych ani wymiernych korzyści.

Related posts

Co wpływa na podcast?

Co wpływa na podcast?

W zeszłym tygodniu zauważyłem komunikat prasowy, wysłany za pośrednictwem PressGazette (brytyjski serwis informacyjny). W artykule ogłoszono, że Acast, skandynawska firma hostingowa i reklamowa podcastów, będzie przewodzić konsorcjum „prawdopodobnie najbardziej wpływowych” wydawców podcastów.

„Odsłonięty Rów Mariański: Odsłonięcie przerażających ukrytych prawd otchłani”

„Odsłonięty Rów Mariański: Odsłonięcie przerażających ukrytych prawd otchłani”

Wprowadzenie:Witajcie, odważni czytelnicy, w podróży, która zabierze nas w najciemniejsze głębiny naszej planety. Na tym blogu zagłębiamy się w enigmatyczny świat Rowu Mariańskiego, odkrywając jego ukryte tajemnice i odkrywając mrożące krew w żyłach prawdy, które leżą pod jego powierzchnią.

Kłamstwo kowbojskie

Jak megakorporacje sprzedały Amerykanom mocne kłamstwo

Kłamstwo kowbojskie

Jest wspaniale złoty poranek na falistych wzgórzach zachodu, gdy pierwsze promienie słońca oświetlają oszronioną trawę na równinach. Stado spokojnego bydła rasy Angus, czarnego jak smoła i masywne, rysuje się na tle wschodu słońca, gdy zmierza utartym szlakiem do miejsca, które wszyscy dobrze znają; bar śniadaniowy.

Powolna erozja: ujawnianie sposobów, w jakie ludzie marnują swoje kariery

Powolna erozja: ujawnianie sposobów, w jakie ludzie marnują swoje kariery

W dzisiejszym dynamicznym i konkurencyjnym świecie kariera odgrywa znaczącą rolę w rozwoju osobistym, stabilności finansowej i ogólnej satysfakcji z życia. Jednak wiele osób wpada w nieustający cykl stagnacji i niezadowolenia, stopniowo marnując swoje życie zawodowe.