2014-03-12 4 views
2

이 매우 도움이 된 post 덕분에 필자는 극좌표가 채워진 윤곽 플롯을 만드는 방법을 마침내 알아 냈습니다. 그러나 다음 단계로 넘어 가서 동일한 플롯에 분산 점을 추가하려고 시도 할 때 몇 가지 문제가 발생했습니다. 이 이미지 제작극좌표 및 산점도 겹침

import numpy as np 
import matplotlib.pyplot as plt 

#-- Generate Data ----------------------------------------- 
# Using linspace so that the endpoint of 360 is included... 
azimuths = np.radians(np.linspace(0, 360, 20)) 
zeniths = np.arange(0, 70, 10) 

r, theta = np.meshgrid(zeniths, azimuths) 
values = np.random.random((azimuths.size, zeniths.size)) 

#-- Plot... ------------------------------------------------ 
fig, ax = plt.subplots(subplot_kw=dict(projection='polar')) 
ax.contourf(theta, r, values) 

plt.show() 

:

Polar filled contour with scatter : 내가 대신 이미지를 얻을

#-- Plot... ------------------------------------------------ 
fig, ax = plt.subplots(subplot_kw=dict(projection='polar')) 
ax.contourf(theta, r, values) 
ax.scatter(np.radians(140), 40, s=20, c='White') 

: Polar filled contour without scatter

나는 또한 산포도를 추가하는 경우 여기에 원래 스크립트입니다

왜 채워진 윤곽선과 축 사이에 두꺼운 흰색 경계선이 생깁니 까? 어떻게 제거합니까?

대단히 감사합니다!

답변

2

작전, 죄송합니다 대답은 2 분 후에 내게 물었다. 방금 산란 점을 추가하면 어떻게 든 축 제한이 변경된다는 것을 알았습니다. 축을 원하는 간격으로 강제 설정하면 문제가 해결됩니다.

enter image description here

fig, ax = plt.subplots(subplot_kw=dict(projection='polar')) 
ax.contourf(theta, r, values) 
ax.scatter([np.radians(140)], [40], s=20, c='White') 
ax.set_rmax(60) 
ax.set_rmin(0) 

나는 아직도 다른 사용자에게 도움이 될 수있다, 나는 어쨌든에 질문을 떠날 수 있다고 생각.

+1

+1'ax.scatter'가 "느슨한"자동 크기 조절 (축 범위로 even-ish 숫자를 선택)을 사용하는 반면'ax.contourf'는 "tight"자동 크기 조절을 사용합니다 (즉, 데이터 제한을 엄격히 사용합니다). 수동으로 제한을 설정하는 대신'contourf'를 호출 한 후'scatter'를 호출하기 전에'ax.autoscale (False)'를 호출하면됩니다. –

+0

아! 매우 흥미 롭습니다. 정보를 제공해 주셔서 감사합니다! – Cronopio