Jak rysować prostokąty w matplotlib (z przykładami)
Aby narysować prostokąt w Matplotlib, możesz użyć funkcji matplotlib.patches.Rectangle , która wykorzystuje następującą składnię:
matplotlib.patches.Rectangle(xy, szerokość, wysokość, kąt=0,0)
Złoto:
- xy: Współrzędne (x, y) punktu zakotwiczenia prostokąta
- szerokość: szerokość prostokąta
- wysokość: wysokość prostokąta
- kąt: Obrót w stopniach w kierunku przeciwnym do ruchu wskazówek zegara wokół xy (domyślnie jest to 0)
W tym samouczku przedstawiono kilka przykładów praktycznego wykorzystania tej funkcji.
Przykład 1: narysuj prostokąt na ścieżce
Poniższy kod pokazuje, jak narysować prostokąt na wykresie Matplotlib o szerokości 2 i wysokości 6:
import matplotlib. pyplot as plt from matplotlib. patches import Rectangle #define Matplotlib figure and axis fig, ax = plt. subplots () #create simple line plot ax. plot ([0, 10],[0, 10]) #add rectangle to plot ax. add_patch (Rectangle((1, 1), 2, 6)) #displayplot plt. show ()
Przykład 2: stylizuj prostokąt
Poniższy kod pokazuje, jak nadać styl prostokątowi:
import matplotlib. pyplot as plt from matplotlib. patches import Rectangle #define Matplotlib figure and axis fig, ax = plt. subplots () #create simple line plot ax. plot ([0, 10],[0, 10]) #add rectangle to plot ax. add_patch (Rectangle((1, 1), 2, 6, edgecolor = ' pink ', facecolor = ' blue ', fill= True , lw= 5 )) #displayplot plt. show ()
Pełną listę właściwości stylu, które możesz zastosować do prostokąta, znajdziesz tutaj .
Przykład 3: narysuj prostokąt na obrazku
Poniższy kod pokazuje, jak narysować prostokąt na obrazie w Matplotilb. Zauważ, że obraz użyty w tym przykładzie pochodzi z tego samouczka Matplotlib .
Aby odtworzyć ten przykład, po prostu pobierz zdjęcie pinezki z tego samouczka i zapisz je na swoim komputerze.
import matplotlib. pyplot as plt from matplotlib. patches import Rectangle from PIL import Image #display the image plt. imshow ( Image.open (' stinkbug.png ')) #add rectangle plt. gca (). add_patch (Rectangle((50,100),40,80, edgecolor=' red ', facecolor=' none ', lw= 4 ))
Zauważ, że możemy użyć argumentu kąta , aby obrócić prostokąt o określoną liczbę stopni w kierunku przeciwnym do ruchu wskazówek zegara:
import matplotlib. pyplot as plt from matplotlib. patches import Rectangle from PIL import Image #display the image plt. imshow ( Image.open (' stinkbug.png ')) #add rectangle plt. gca (). add_patch (Rectangle((50,100),40,80, angle= 30 , edgecolor=' red ', facecolor=' none ', lw= 4 ))