저는 최근에 healpy를 사용하기 시작했습니다. 서브 맵에 내 맵을 포함시키는 방법을 알아낼 수 없습니다. 나는 시간의 함수로서 행성의 열 방출 맵을 가지고 있으며, 나는 시간이 지남에 따라 여러 번 (9 개의 다른 시간을 말함) 그것을보고 행성이 올바른 방향으로 회전하고 있는지 확인하기 위해 일부 좌표를 중첩해야한다.Healpy 플로팅 : healpy.mollview 투영법을 사용하여 서브 플로트로 그림을 만드는 방법은 무엇입니까?
지금까지 2 가지를 할 수 있습니다.
- 중첩 된 좌표로 9 가지 다른 숫자를 만듭니다.
- 9 개의 다른 맵을 포함하는 9 개의 서브 플로팅으로 그림을 만들지 만, 시간에 적합한 맵 대신 내 모든 서브 플로트에 모든 좌표를 덧붙입니다.
매우 간단한 문제인지는 모르겠지만 나를 미치게 만들었고 작동하지 않는 항목이 있습니다.
내가 무슨 뜻인지 보여 드리죠 :
옵션 1 :
Flux map superimposed with some stars at time = t
하지만 난이 필요
이import healpy as hp
import matplolib.pyplot as plt
MAX = 10**(23)
MIN = 10**10
for i in range(9):
t = 4000+10*i
hp.visufunc.mollview(Fmap_wvpix[t,:],
title = "Map at t="+str(t), min = MIN, max=MAX))
hp.visufunc.projplot(d[t,np.where(np.abs(d[t,:,2]-SSP[t])<0.5),1 ],
d[t,np.where(np.abs(d[t,:,2]-SSP[t])<0.5),2],
'k*',markersize = 6)
hp.visufunc.projplot(d[t,np.where(np.abs(d[t,:,2]-(SOP[t]))<0.2),1 ],
d[t,np.where(np.abs(d[t,:,2]-(SOP[t]))<0.2),2],
'r*',markersize = 6)
이이처럼 꽤 많이 보이는 9 개 수치를 만드는을 그들 중 많은 수가 이미지처럼 보이는 9 개의 서브 플롯을 포함하는 이미지를 만들고 싶습니다.
옵션 2 :
fig = plt.figure(figsize = (10,8))
for i in range(9):
t = 4000+10*i
hp.visufunc.mollview(Fmap_wvpix[t,:],
title = "Map at t="+str(t), min = MIN, max=MAX,
sub = int('33'+str(i+1)))
hp.visufunc.projplot(d[t,np.where(np.abs(d[t,:,2]-SSP[t])<0.5),1 ],
d[t,np.where(np.abs(d[t,:,2]-SSP[t])<0.5),2],
'k*',markersize = 6)
hp.visufunc.projplot(d[t,np.where(np.abs(d[t,:,2]-(SOP[t]))<0.2),1 ],
d[t,np.where(np.abs(d[t,:,2]-(SOP[t]))<0.2),2],
'r*',markersize = 6)
이 나에게 줄거리를 제공하지만 내 줄거리의 모든의 모든 projplot의 별을 그립니다!
내가 = t 매핑하고 적절한지도 = t 시간 동안 별을 그리는 시간이 축를 호출 할 수있는 방법이 필요하다는 것을 알고있다 (아래 이미지 참조),하지만 난 모든했습니다 지금까지 시도한 것은 실패했습니다. 나는 주로 matplotlib 축을 정의하고 그것에 별을 그릴 수 있다고 생각하는 projaxes를 사용하려고 시도했지만 작동하지 않습니다. 어떤 충고?
또한지도에서 일부 선을 그리기를 원하지만 그 중 하나를 수행하는 방법을 파악할 수 없습니다. 설명서에는 projplot이 표시되어 있지만 표식을 원한다고 말하지 않으면 아무 것도 그려지지 않습니다.
추신 : 내 배열이없는 경우이 코드는 작동하지 않으므로 아마도 쓸모가 없습니다.
import numpy as np
import healpy as hp
import matplotlib.pyplot as plt
NSIDE = 8
m = np.arange(hp.nside2npix(NSIDE))*1
MAX = 900
MIN = 0
fig = plt.figure(figsize = (10,8))
for i in range(9):
t = 4000+10*i
hp.visufunc.mollview(m+100*i, title = "Map at t="+str(t), min = MIN, max=MAX,
sub = int('33'+str(i+1)))
hp.visufunc.projplot(1.5,0+30*i, 'k*',markersize = 16)
그래서 이것은 나에게 각 프레임 별 하나를 주기로하고 스타가 이동하도록되어 : 여기에 실행해야합니다 간단한 버전입니다. 그러나 대신 모든 프레임에 모든 별을 그립니다.
어떻게해야합니까? 나는 문서를 이해하지 못한다.