2017-03-18 6 views
0

유체 역학 시뮬레이션 데이터를 구 좌표계로 플로팅하고 때로는 pixelolite 대신 부드럽고 부드러워 보이기 때문에 contourf를 사용하는 것을 선호합니다. 그러나 contourf는 항상 극좌표에서 r = 0으로 데이터를 확장하지만 데이터에는 r = 0이 포함되지 않습니다. 아래의 간단한 예제로이 문제를 재현했습니다 :Matplotlib의 극좌표는 contourf를 사용하여 잘못된 범위를 표시합니다.

from pylab import * 

fig = figure(figsize=(6, 6)) 
ax = fig.add_subplot(111,projection='polar') 

# generate some data 
Nt,Nr = 150,150 
r_axis = np.linspace(0.5,1.,Nr) 
t_axis = np.linspace(0.,0.5*np.pi,Nt) 
r_grid, t_grid = np.meshgrid(r_axis,t_axis) 

data = np.zeros((Nt,Nr)) 
sin_theta = np.sin(t_axis) 
for i in range(Nr): 
    data[:,i] = sin_theta 

if 1: # polar plot using contourf - plots incorrectly from r = 0 
    scale = np.linspace(0.,1.,100) 
    polar = ax.contourf(t_grid,r_grid,data,scale,cmap='Spectral') 
else: # correctly plots the data 
    polar = ax.pcolormesh(t_grid,r_grid,data,cmap='Spectral') 
show() 

빠른 수정이 있습니까? 감사합니다

답변

0

하나는 축 한계를 설정할 수 있습니다. 방사상 스케일

ax.set_ylim(0,1) 

은 0

enter image description here

에 원점을 설정한다 따라서 y로 설정