用Python制作我的核酸檢測(cè)日歷_第1頁(yè)
用Python制作我的核酸檢測(cè)日歷_第2頁(yè)
用Python制作我的核酸檢測(cè)日歷_第3頁(yè)
用Python制作我的核酸檢測(cè)日歷_第4頁(yè)
用Python制作我的核酸檢測(cè)日歷_第5頁(yè)
已閱讀5頁(yè),還剩1頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第用Python制作我的核酸檢測(cè)日歷我的坐標(biāo)是深圳,2025年以來,大部分時(shí)候要求24小時(shí),少部分時(shí)候要求48小時(shí),更少的時(shí)候要求72小時(shí),沒有更長(zhǎng)的情況。

本文根據(jù)我的核酸檢測(cè)記錄,制作成日歷,將核酸檢測(cè)記錄可視化到日歷中。

核酸檢測(cè)記錄能查到的最早時(shí)間范圍是一個(gè)月,以前的檢測(cè)記錄沒有提前保存,所以先用8月份的數(shù)據(jù)制作日歷。

查詢8月份的檢測(cè)記錄,錄入到代碼中。

#coding=utf-8

fromdatetimeimportdatetime

#核酸檢測(cè)數(shù)據(jù),1表示當(dāng)天做了核酸,0表示當(dāng)天未做核酸

my_nucleic={

date:[datetime.strftime(datetime(2025,8,i+1),%Y-%m-%d)foriinrange(31)],

nucleic:[1,1,0,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]

}

如果當(dāng)天做了核酸,用1表示,如果當(dāng)天未做核酸,用0表示。

8月的日期使用Python標(biāo)準(zhǔn)庫(kù)datetime生成。

本文使用Python庫(kù)openpyxl在excel表格中生成日歷。

1.使用openpyxl創(chuàng)建表格

importopenpyxl

#創(chuàng)建一個(gè)workbook對(duì)象,而且會(huì)在workbook中至少創(chuàng)建一個(gè)表worksheet

wb=openpyxl.Workbook()

#獲取當(dāng)前活躍的worksheet,默認(rèn)就是第一個(gè)worksheet

ws=wb.active

openpyxl是Python中用于讀寫excel文件的庫(kù),pipinstallopenpyxl安裝即可使用。

2.定義表格初始化和單元格設(shè)置的函數(shù)

fromopenpyxl.stylesimportPatternFill,Font,Alignment,Border,Side

definit_sheet(ws):

forrinrange(100):

forcinrange(100):

ws.cell(row=r+1,column=c+1).fill=PatternFill(solid,fgColor=000000)

defset_cell_style(ws,r,c,color):

ws.cell(row=r,column=c).fill=PatternFill(solid,fgColor=color)

ws.cell(row=r,column=c).font=Font(name=微軟雅黑,size=14,bold=True)

ws.cell(row=r,column=c).alignment=Alignment(horizontal=right,vertical=center)

side=Side(>

定義一個(gè)將表格顏色填充成白色的函數(shù),對(duì)表格初始化處理,將背景設(shè)置成純白,日歷看起來更美觀。

定義一個(gè)用于處理單元格格式的函數(shù),后面直接調(diào)用函數(shù)給單元格設(shè)置格式,方便重復(fù)使用。

3.實(shí)現(xiàn)日歷

importcalendar

#將表格填充成白色

init_sheet(ws)

#設(shè)置年月單元格的邊框

side=Side(>

日歷效果:

可以看到,8月份我只有4天沒有做核酸,大部分時(shí)間都是保持24小時(shí)。

代碼實(shí)現(xiàn)介紹:

先合并首行的前7列單元格,寫入年月,然后在第二行從左到右寫入星期一到星期日,并設(shè)置格式。

使用Python的日歷庫(kù)calendar返回當(dāng)前月第一天是星期幾,然后確定日歷的1號(hào)的起始位置。

從1號(hào)開始,依次在excel中寫入日期,當(dāng)列到達(dá)星期日時(shí),換行并回到星期一的列。

根據(jù)當(dāng)天是否做了核酸,給單元格填充背景顏色。本文中如果當(dāng)天做了核酸,則日期的背景設(shè)置為綠色(24小時(shí)核酸碼的顏色),如果未做核酸,則日期的背景設(shè)置為白色。

最后將結(jié)果保存到excel文件中,打開excel文件即可看到制作的日歷。

制作一年的日歷

制作了一個(gè)月的日歷后,繼續(xù)擴(kuò)展做一年的日歷,先看一下效果:

實(shí)現(xiàn)方式介紹:

數(shù)據(jù)補(bǔ)充,由于只能查到一個(gè)月的核酸記錄,所以本文除2025年8月外,其他月份的數(shù)據(jù)用隨機(jī)數(shù)生成。

對(duì)制作一個(gè)月日歷的代碼進(jìn)行封裝,傳入年和月,就可以生成任意一個(gè)月的日歷。

在excel文件中,自己設(shè)計(jì)一排展示幾個(gè)月,本文一排展示3個(gè)月。并計(jì)算每個(gè)月日歷的起始單元格位置。

最后傳入年份,依次將一年12個(gè)月的日歷制作出來,展示在一個(gè)頁(yè)面上。只要有數(shù)據(jù),可以對(duì)任意一年的日歷進(jìn)行可視化。(代碼較長(zhǎng),可在文末獲取完整代碼)

按年的另一種展示方式:

frompyechartsimportoptionsasopts

frompyecharts.chartsimportCalendar

importpandasaspd

nucleic_df=pd.DataFrame()

foriinrange(12):

month_nucleic=made_data(2025,i+1)

month_df=pd.DataFrame(month_nucleic)

nucleic_df=pd.concat([nucleic_df,month_df])

data=[[row_data[date],row_data[nucleic]]forrow_index,row_datainnucleic_df.iterrows()]

cal=Calendar(init_opts=opts.InitOpts(width=900px,height=500px))

cal.add(

,data,calendar_opts=opts.CalendarOpts(range_=2025,

daylabel_opts=opts.CalendarDayLabelOpts(first_day=1,name_map=cn))

).set_series_opts(

label_opts=opts.LabelOpts(font_size=12)

).set_global_opts(

title_opts=opts.TitleOpts(title=核酸檢測(cè)日歷,pos_left=450,pos_top=0,

title_textstyle_opts=opts.TextStyleOpts(color=black,font_size=16)),

visualmap_opts=opts.VisualMapOpts(

max_=1,min_=0,orient=horizontal,is_piecewise=False,

range_color=[white,white,green],pos_top=250px,pos_left=50px

).render(my_nucleic.html)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論