Python matplotlib.pyplot – jak generować wykresy? #3

Python matplotlib.pyplot - jak generować wykresy? #3

Poziom trudności
1/5

Gdy wygenerowane z poprzedniej części serii o matplotlib.pyplot wykresy chcemy wzbogacić o dodatkowe opisy, lub oznaczyć strzałką z opisem konkretny punkt wykresu. Z pomocą przychodzi nam metoda annotate. Dzięki niej dokładnie zdefiniujesz wcześniej wymienione funkcjonalności.

Dodatkowy tekst na wykresie

Aby oznaczyć kluczowe informacje, posługując się metodą annotate(), możemy wygenerować na przykład tekst na wykresie. Jako pierwszy argument funkcji podajemy opis, który pojawi się na wykresie. Następnie argument xy, który jest krotką dwóch wartości, współrzędnych, gdzie ma znaleźć się wcześniej wpisany tekst.

  1. import matplotlib.pyplot as pyplot
  2. x = ['q', 'w', 'e', 'r']
  3. y = [1, 2, 3, 5]
  4. lines = pyplot.plot(x, y, "r--")
  5. pyplot.annotate('this point', xy=(1, 3))
  6. pyplot.show()
Python matplotlib.pyplot   jak generować wykresy? #3 image

Oznaczenie strzałką ważnych informacji na wykresie

Metoda annotate() oprócz opisu, dodatkowo umożliwia generowanie strzałki wskazującej konkretny punkt. Zaczynamy podobnie jak w poprzednim przykładzie, jako pierwszy argument podajemy opis punktu, który pojawi się na wykresie. Kolejnym xytext podajemy jako współrzędne w formie krotki, gdzie ma się rozpoczynać strzałka i jednocześnie pojawić opis wskazywanego punktu. Argument xy różni się od standardowego użycia bez strzałki, gdyż w tym wypadku xy jest krotką dwóch wartości, współrzędnych punktu, na który ma wskazać strzałka. Ostatnim wymaganym argumentem jest arrowprops. Bez niego pojawi się tylko opis, z pominięciem strzałki. Przyjmuje on słownika z parametrami określającymi wygląd strzałki. Słownik może być pusty – wtedy strzałka będzie się składać z samych domyślnych wartości. W poniższym przykładzie zmieniam kolor wypełniania strzałki na zielony – kolory możemy oznaczać tak jak kolory wykresu przytoczone w poprzednim artykule:

  1. import matplotlib.pyplot as pyplot
  2. x = ['q', 'w', 'e', 'r']
  3. y = [1, 2, 3, 5]
  4. lines = pyplot.plot(x, y, "r--")
  5. pyplot.annotate('this point',
  6. xy=(2, 3),
  7. xytext=(1, 4),
  8. arrowprops=dict(facecolor='g')
  9. )
  10. pyplot.show()
Python matplotlib.pyplot   jak generować wykresy? #3 image

Wygląd strzałki

Strzałka,o prócz koloru, może także przyjmować różne style. Aby zmienić wygląd strzałki, użyj klucza arrowstyle  w słowniku arrowprops. Klucz ten może przyjmować różne wartości typu string. Jedną z nich może by ‚->’ i oznacza ona cienką strzałkę:

  1. import matplotlib.pyplot as pyplot
  2. x = ['q', 'w', 'e', 'r']
  3. y = [1, 2, 3, 5]
  4. lines = pyplot.plot(x, y, "r--")
  5. pyplot.annotate('this point',
  6. xy=(2, 3),
  7. xytext=(1, 4),
  8. arrowprops={'arrowstyle':'->'}
  9. )
  10. pyplot.show()
Python matplotlib.pyplot   jak generować wykresy? #3 image

Strzałka posiada wiele możliwych wyglądów:

Ostatnie dwa style strzałek (wedge i fancy) mogą być nie zrozumiałe, więc zaprezentuję je poniżej. Mogę to zrobić jednocześnie, gdyż na jednym wykresie może znajdować się wiele dodatkowych oznaczeń jednocześnie.

  1. import matplotlib.pyplot as pyplot
  2. x = ['q', 'w', 'e', 'r']
  3. y = [1, 2, 3, 5]
  4. lines = pyplot.plot(x, y, "r--")
  5. pyplot.annotate('fancy arrow',
  6. xy=(2, 3),
  7. xytext=(1, 4),
  8. arrowprops={'arrowstyle':'fancy'}
  9. )
  10. pyplot.annotate('wedge arrow',
  11. xy=(2, 3),
  12. xytext=(2, 1.5),
  13. arrowprops={'arrowstyle':'wedge'}
  14. )
  15. pyplot.show()
Python matplotlib.pyplot   jak generować wykresy? #3 image

Teraz możesz oznaczyć i opisać każdy kluczowy punkt, przedział lub zbór punktów na generowanym wykresie. W kolejnej odsłonie serii Python matplotlib.pyplot – jak generować wykresy? zaprezentuję jak wygenerować wykres z legendą.

Python matplotlib.pyplot   jak generować wykresy? #3 image

Dodaj komentarz