2016-07-19 4 views
3

저는 순수한 섹터 라인을 원합니다. 쐐기는 아닙니다. 나는 그것을 벡터 화살표의 끝에서 벡터의 방향의 불확실성을 나타 내기 위해 사용하려한다. plt.arrow를 사용하여 matplotlib의 basemap 위에 화살표를 그립니다.matplotlib에서 어떻게 섹터를 그립니까?

쐐기 이외의 다른 불확실성을 표현할 방법을 찾을 수 없었습니다. 나는 화살표 끝에 단지 섹터 라인을 그릴 수 있는지 궁금합니다.

답변

5

일부 기원 v_origin에 임의의 벡터 v 상대가 가정, 그리고 각도 각도 불확실성의 : 정확히 내가 원하는처럼

import pylab as plt 
import numpy as np 
#plt.style.use('ggplot') # because it's just better ;) 

v_origin = [.2, .3] 
v = [1., 1.] 
angular_uncert = 20. # angular uncertainty of vector in degrees 
v_angle = np.arctan2(v[1] ,v[0]) # starting angle 

# plot the arrow 
fig = plt.figure(1) 
ax = plt.gca() 
ax.arrow(v_origin[0], v_origin[1] ,v[0], v[1], 
    head_width=0.05, 
    head_length=0.1, 
    lw=2, 
    fc='#777777', 
    ec='#777777', 
    length_includes_head=True) 

# plot the sector line 
uncert = (angular_uncert/2.) *np.pi/180. 
r = np.linalg.norm(v) # length of vector 
t = np.linspace(v_angle - uncert , v_angle+uncert , 100) # angular range of sector 
x = r* np.cos(t) + v_origin[0] # sector x coords 
y = r* np.sin(t) + v_origin[1] # sector y coords 
ax.plot(x,y, lw=2, ls='--') # plot the sector 
ax.plot(v_origin[0], v_origin[1], 'o', ms=10, c='Limegreen') # plot the origin 

# adjust the figure 
ax.set_xlim(0, 1.6) 
ax.set_ylim(0, 1.6) 
ax.set_aspect('equal') 
fig.show() 

enter image description here

+0

이 보이는,하지만 난 문제가 점점가 있어요 위도와 경도 좌표를 사용하여 플롯 할 화살표입니다. 원의 중심 좌표와 불확실성이 있다면지도에서 어떻게 이것을 복제 할 수 있습니까? – noggy

+1

오리진 매개 변수에 추가했습니다. 아마도 도움이 될까요? 벡터가 원점의 좌표에 상대적인지 확인하십시오. – dermen

+0

beautiful. 고맙습니다 – noggy

관련 문제