python通过astral,matpotlin库实现计算日出日落并绘制折线图

python通过astral,matpotlin库实现计算日出日落并绘制折线图

from astral import LocationInfo                                                                             #引用库
import datetime
from astral.sun import sun
import numpy as np
import matplotlib.pyplot as plt
#import re

换源加速下载pip -i http://pypi.douban.com/simple install Flask -- trusted-host pypi.douban.com
安装astral库文件pip install astral

安装matpotlib库pip install matplotlib



city = LocationInfo('Yuxi', 'China','Asia/Shanghai',24.350461, 102.543907)                                   #定义城市信息

print((
    f"Information for {city.name}/{city.region}\n"
    f"Timezone: {city.timezone}\n"
    f"Latitude: {city.latitude:.02f}; Longitude: {city.longitude:.02f}\n"
))                                                                                                           #输出城市信息
sunrise_a=[]                                                                                                 #创建日出元组
sunset_a=[]
x=[]
i=1
print(' date         sunrise-date          sunaet-date')
while(i<32):
    s = sun(city.observer, date=datetime.date(2021, 7, i),tzinfo=city.timezone)
    #null_1=re.search('\d\d\S\d\d\S\d\d\S',s["sunrise"])                                                      #使用正则匹配,类型出错
    sunrise_a.append(s['sunrise'].strftime("%H:%M:%S"))                                                       #信息导入到元组内
    #null_2=re.search('\d\d\s\d\d\S\d\d\S',s["sunset"])
    sunset_a.append(s['sunset'].strftime("%H:%M:%S"))
    print((                                                                                                   #输出列表
        '-----------------------------------------------------\n'
       
        f'|{s["sunrise"].strftime("%Y-%m-%d")}|sunise:  {s["sunrise"].strftime("%H:%M:%S")}  |  '
        f' sunset: {s["sunset"].strftime("%H:%M:%S")} |'
    ))
    x.append(i)
    i+=1
print('-----------------------------------------------------')

plt.plot(x, sunrise_a, marker='o', markersize=3)                                                               # 绘制折线图,添加数据点,设置点的大小
plt.plot(x, sunset_a, marker='o', markersize=3)
plt.savefig("easyplot.jpg")                                                                                    #保存折线图
plt.show()                                                                                                     #展示折线图
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值