Proč matplotlib.pyplot.toulec dokumentaci uvedeno nesprávné pořadí U, V parametry?

0

Otázka

Předtím, než cokoli, tady je Google Colab odkaz předvést vydání: https://colab.research.google.com/drive/1sq8Dn7wdNqbfRmz2SyQnj0MfRirxmneA?usp=sharing

Im pomocí matplotlib pro děj nějaký gradient pole generované s:

x,y = numpy.gradient(array_2d)

A všiml jsem si zvláštní věc. Dokumentace uvádí, že pro vykreslení 2d pole, musíte projít U (x) a V(y). Příklad:

plt.quiver(x, y)

Ale když jsem si tak s Gaussovské pole, je zřejmé, že je něco špatně, protože výsledek pozemky šípy všude kolem. Ale když jsem se obrátit pořadí parametrů, například:

plt.quiver(y, x)

Výsledky očekávat perfektní gradientu pole.

Im dostat to špatně(dokumentace, kód) nebo je tam opravdu nějaký problém?

Nezapomeňte zkontrolovat Google Colab, aby lépe pochopit případě.

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

Nejlepší odpověď

1

Na quiver funkce a jeho dokumentace jsou správné, jen špatně interpretován výstup gradient funkce.

Ve výstupu, první array (np.gradient(gaussianMatrix)[0]) je gradient podél první osy (axis=0 = řádky z pole), která je y-osy v matplotlib a druhé pole je pro druhou osu (axis=1 = sloupce matice), což je osa x v matplotlib.

To je také vysvětleno v dokumentaci (v sekci příklady po třetí příklad):

Pro dvourozměrné pole, návrat budou dvě pole objednal osy. V tomto příkladu první pole je zkratka pro gradient v řadách a druhý ve sloupcích směrem:

Chcete být inline s matplotlib dokumentaci doporučuji používat u a v místo x a y pokud nechcete projít na šipku místech, ale jen směry. Takže váš kód by měl být:

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

V jiných jazycích

Tato stránka je v jiných jazycích

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