太阳python怎么画_立体图太阳图matplotlib极地情节python

本文介绍了如何使用matplotlib和Basemap库在Python中绘制太阳的立体图和极地情节,结合Pysolar计算太阳高度和方位角,展示了绘制太阳轨迹的基础步骤。
摘要由CSDN通过智能技术生成

我终于有时间玩matplotlib了.经过多次搜索,Joe Kington指出的正确方法是对Axes进行子类化.我发现使用优秀底图模块的方法要快得多.

下面是我为stackoverflow改编的一些代码.使用Pysolar计算太阳高度和方位角,并在熊猫中创建一组时间序列标记.

import matplotlib.pylab as plt

from mpl_toolkits.basemap import Basemap

import numpy as np

winterAzi = datafomPySolarAzi

winterAlt = datafromPySolarAlt

# create instance of basemap, note we want a south polar projection to 90 = E

myMap = Basemap(projection='spstere',boundinglat=0,lon_0=180,resolution='l',round=True,suppress_ticks=True)

# set the grid up

gridX,gridY = 10.0,15.0

parallelGrid = np.arange(-90.0,90.0,gridX)

meridianGrid = np.arange(-180.0,180.0,gridY)

# draw parallel and meridian grid, not labels are off. We have to manually create these.

myMap.drawparallels(parallelGrid,labels=[False,False,False,False])

myMap.drawmeridians(meridianGrid,labels=[False,False,False,False],labelstyle='+/-',fmt='%i')

# we have to send our values through basemap to convert coordinates, note -winterAlt

winterX,winterY = myMap(winterAzi,-winterAlt)

# plot azimuth labels, with a North label.

ax = plt.gca()

ax.text(0.5,1.025,'N',transform=ax.transAxes,horizontalalignment='center',verticalalignment='bottom',size=25)

for para in np.arange(gridY,360,gridY):

x= (1.1*0.5*np.sin(np.deg2rad(para)))+0.5

y= (1.1*0.5*np.cos(np.deg2rad(para)))+0.5

ax.text(x,y,u'%i\N{DEGREE SIGN}'%para,transform=ax.transAxes,horizontalalignment='center',verticalalignment='center')

# plot the winter values

myMap.plot(winterX,winterY ,'bo')

请注意,目前我只绘制点,你必须确保线点在日出/日落时的点数为0.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值