Prečo matplotlib.pyplot.tulec dokumentácie štáty nesprávne poradie U, V parametroch?

0

Otázka

Pred ničím, je tu spoločnosť Google Colab odkaz na prezentáciu problému: https://colab.research.google.com/drive/1sq8Dn7wdNqbfRmz2SyQnj0MfRirxmneA?usp=sharing

Im pomocou matplotlib na pozemku niektoré gradientu poľa generovaného s:

x,y = numpy.gradient(array_2d)

A všimol si niečo zvláštne. Dokumentácia uvádza, že na pozemku 2d pole, musíte prejsť U (x) a V(y). Príklad:

plt.quiver(x, y)

Ale keď som tak urobiť s Gaussova oblasti, je zrejmé, že niečo nie je v poriadku, pretože výsledky inventarizačných šípky všetkých okolo. Ale keď som sa prehodiť poradie parametrov, napríklad:

plt.quiver(y, x)

Výsledky v očakávať ideálne gradientu poľa.

Im, ako sa to zle(dokumentácia, kód), alebo je naozaj nejaký problém?

Nezabudnite skontrolovať Google Colab lepšie understant prípade.

gradient matplotlib python
2021-11-19 00:32:31
1

Najlepšiu odpoveď

1

Na quiver funkcia a jej dokumentácie sú správne, len nesprávne vykladané výstup gradient funkcia.

V výstup, prvý array (np.gradient(gaussianMatrix)[0]je gradient spolu prvej osi (axis=0 = riadkov poľa), ktorý je na osi y v matplotlib a druhý rad je na druhej osi (axis=1 = stĺpce (array), ktoré je os x v matplotlib.

To je tiež vysvetlenie nájdete v dokumentácii (v príkladoch oddiel po tretí príklad):

Pre dvojrozmerný polia, návrat budú dve polia zoradené podľa osi. V tomto príklade prvého poľa predstavuje gradient v radoch a druhý v stĺpcoch smer:

Ak chcete byť inline s matplotlib dokumentácie odporúčam používať u a v namiesto x a y ak nechcete prejsť na šípku miest, ale len smeroch. Takže váš kód by mal byť:

v,u = numpy.gradient(array_2d)
plt.quiver(u, v)
2021-11-19 11:37:00

V iných jazykoch

Táto stránka je v iných jazykoch

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................