2013-06-05 15 views
95

Nie do końca rozumiem, dlaczego nie mogę utworzyć linii poziomych i pionowych w określonych granicach. Chciałbym związać dane tym polem. Jednak strony nie wydają się być zgodne z moimi instrukcjami. Dlaczego to?Linie pionowe i poziome w matplotlib

# CREATING A BOUNDING BOX 
# BOTTOM HORIZONTAL 
plt.axhline(y=.4, xmin=0.25, xmax=0.402, linewidth=2, color = 'k') 
# RIGHT VERTICAL 
plt.axvline(x=0.402, ymin=0.4, ymax = 0.615, linewidth=2, color='k') 
# LEFT VERTICAL 
plt.axvline(x=0.1, ymin=0.58, ymax = 0.79, linewidth=2, color='k') 
plt.show() 

enter image description here

Odpowiedz

131

Funkcje pyplot dzwonisz, axhline() i axvline() linie remis, które obejmują część zakresu osi, niezależnie od współrzędnych. Parametry używają wartości 0,0 jako minimum osi i 1,0 jako maksimum osi.

Zamiast tego użyj plt.plot((x1, x2), (y1, y2), 'k-'), aby narysować linię od punktu (x1, y1) do punktu (x2, y2) w kolorze k. Zobacz pyplot.plot.

+2

http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.axhline <- dokumentacja . Powinieneś edytować swoją odpowiedź, aby dołączyć ten link. – tacaswell

+0

@ tcaswell, Dzięki, powinienem był to zrobić. –

+11

Innym rozwiązaniem do wykreślania linii poziomych i pionowych jest użycie ['hlines'] (http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.hlines) lub [' vlines'] (http: // matplotlib .org/api/pyplot_api.html # matplotlib.pyplot.vlines), ponieważ jest to bardziej trywialne niż zwykłe 'plot' imo – hooy

13

Jeśli chcesz dodać obwiednię, użyj prostokąta:

ax = plt.gca() 
r = matplotlib.patches.Rectangle((.5, .5), .25, .1, fill=False) 
ax.add_artist(r) 

Rectangle doc

Powiązane problemy