2016-04-10 17 views
3

plt.quiver()'un nasıl çalıştığını anlamaya çalışıyorum.Matplotlib'in titreme çizimini anlama

ben gibi basit vektör (1,1) çizmek: şu şekildedir: Benim konudur

import numpy as np 
import matplotlib.pyplot as plt 

fig = plt.figure(2) 
ax = fig.add_subplot(111) 
ax.quiver(0,0, 1, 1, units = 'xy', scale = 1) 
plt.xticks(range(-5,6)) 
plt.yticks(range(-5,6)) 
plt.grid() 

ben ok (0,0) den (1,1) gitmek beklenebilir, ancak sonuç biraz bundan kapalıdır: vector 1,1

Benzer şekilde, ben denemek ve vektör (0,3) için bir ok çizmek ve elde edilen ok vektör (0,3.5) için gibi görünüyor ...

enter image description here

Benim varsayım bu kwargs'units', 'scale', 'angles', & 'scale_units' ile ilgili bir şey olmasıdır. Onları okuyan dokümanlar okudum ama nasıl çalıştığını tam olarak anlamadım. Pazar günü okul açıklaması büyük beğeni topladı! 1 olarak şekil oranının ayarlanması durumunda

+0

nasıl, bunları deneyin yaklaşık olarak matplotlib.quiver hakkında daha fazla bilgi bulabilirsiniz, zaten sahip araziler ve rapor kalan sorularla onları birlikte çizmek? – Chiel

+0

kullanılır: 'ax.quiver ((0,0), (0,0), (1,0), (1,3), üniteler = 'xy', scale = 1)' ve aynı sonucu aldılar). yani 0,0'dan 0,3,5'e (ish) giden 1 oklu bir grafik ve 0,0'dan aprox 0.9,1.2'ye giden başka bir ok. – RSHAP

+0

Sanırım soruyu cevapladınız :) – Chiel

cevap

6

, vektörler uygun ölçeğe görüntülenir:

import numpy as np 
import matplotlib.pyplot as plt 

fig = plt.figure() 
ax = fig.add_subplot(111) 
ax.quiver((0,0), (0,0), (1,0), (1,3), units = 'xy', scale = 1) 
plt.axis('equal') 
plt.xticks(range(-5,6)) 
plt.yticks(range(-5,6)) 
plt.grid() 
plt.show() 

enter image description here

3

Bu kodu deneyebilirsiniz.

This is the output

import matplotlib.pyplot as plt 

fig = plt.figure(2) 
ax = fig.add_subplot(111) 
ax.quiver(0,0, 1, 1,angles='xy', scale_units='xy', scale = 1) 
plt.xticks(range(-5,6)) 
plt.yticks(range(-5,6)) 
plt.grid() 
plt.draw() 
plt.show() 

sadece quiver ilk iki parametre, x ve vektörün kuyruk y koordinatları unutmayın sonraki iki sırasıyla x ve y yönünde vektörünün boyudur. angle='xy', ok ucunu vektörün ucundan ucuna getirir.

Sen http://matplotlib.org/1.3.1/api/pyplot_api.html#matplotlib.pyplot.quiver