最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

利用Python制作簡(jiǎn)易的核酸檢測(cè)日歷

 更新時(shí)間:2022年09月05日 10:54:32   作者:小斌哥r  
這篇文章主要為大家詳細(xì)介紹了如何利用Python語(yǔ)言制作簡(jiǎn)易的核酸檢測(cè)日歷,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以動(dòng)手嘗試一下

我的坐標(biāo)是深圳,2022年以來(lái),大部分時(shí)候要求24小時(shí),少部分時(shí)候要求48小時(shí),更少的時(shí)候要求72小時(shí),沒(méi)有更長(zhǎng)的情況。

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

錄入數(shù)據(jù)

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

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

# coding=utf-8
from datetime import datetime
# 核酸檢測(cè)數(shù)據(jù),1表示當(dāng)天做了核酸,0表示當(dāng)天未做核酸
my_nucleic = {
   'date': [datetime.strftime(datetime(2022, 8, i+1), '%Y-%m-%d') for i in range(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)建表格

import openpyxl
# 創(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ù),pip install openpyxl安裝即可使用。

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

from openpyxl.styles import PatternFill, Font, Alignment, Border, Side
def init_sheet(ws):
   for r in range(100):
       for c in range(100):
           ws.cell(row=r+1, column=c+1).fill = PatternFill('solid', fgColor='000000')
def set_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(style="medium", color="004B3C")
   ws.cell(row=r, column=c).border = Border(top=side, bottom=side, left=side, right=side)

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

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

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

import calendar
# 將表格填充成白色
init_sheet(ws)
# 設(shè)置年月單元格的邊框
side = Side(style="medium", color="004B3C")
for col in range(7):
   ws.cell(row=1, column=col+1).border = Border(top=side, bottom=side, left=side, right=side)
# 合并年月單元格
ws.merge_cells(start_row=1, start_column=1, end_row=1, end_column=7)
# 寫入內(nèi)容和設(shè)置格式
ws.cell(row=1, column=1).value = '2022年8月'
set_cell_style(ws, r=1, c=1, color='418CFA')
# 寫入星期一至星期日,并設(shè)置格式
title_data = ['星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期日']
for col in range(7):
   ws.cell(row=2, column=col+1).value = title_data[col]
   set_cell_style(ws, r=2, c=col+1, color='418CFA')
# 獲取一個(gè)月的天數(shù)和第一天是星期幾
monthday = calendar.monthrange(2022, 8)
# 設(shè)置日歷的日期
col, row = monthday[0], 3
for i in range(len(my_nucleic['date'])):
   if col < 7:
       ws.cell(row=row, column=col + 1).value = i+1
       col += 1
   else:
       col = 0
       row += 1
       ws.cell(row=row, column=col + 1).value = i+1
       col += 1
   # 設(shè)置單元格格式
   set_cell_style(ws, r=row, c=col, color='000000')
   # 根據(jù)核酸結(jié)果填充顏色
   if my_nucleic['nucleic'][i] == 1:
       ws.cell(row=row, column=col).fill = PatternFill('solid', fgColor='009B3C')
# 設(shè)置行高
for i in range(1, row+1):
   ws.row_dimensions[i].height = 30
# 保存表格
wb.save(filename='show_august_nucleic.xlsx')
wb.close()

日歷效果:

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

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

  •  先合并首行的前7列單元格,寫入年月,然后在第二行從左到右寫入星期一到星期日,并設(shè)置格式。
  •  使用Python的日歷庫(kù)calendar返回當(dāng)前月第一天是星期幾,然后確定日歷的1號(hào)的起始位置。
  •  從1號(hào)開(kāi)始,依次在excel中寫入日期,當(dāng)列到達(dá)星期日時(shí),換行并回到星期一的列。
  •  根據(jù)當(dāng)天是否做了核酸,給單元格填充背景顏色。本文中如果當(dāng)天做了核酸,則日期的背景設(shè)置為綠色(24小時(shí)核酸碼的顏色),如果未做核酸,則日期的背景設(shè)置為白色。
  •  最后將結(jié)果保存到excel文件中,打開(kāi)excel文件即可看到制作的日歷。

制作一年的日歷

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

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

  •  數(shù)據(jù)補(bǔ)充,由于只能查到一個(gè)月的核酸記錄,所以本文除2022年8月外,其他月份的數(shù)據(jù)用隨機(jī)數(shù)生成。
  •  對(duì)制作一個(gè)月日歷的代碼進(jìn)行封裝,傳入年和月,就可以生成任意一個(gè)月的日歷。
  •  在excel文件中,自己設(shè)計(jì)一排展示幾個(gè)月,本文一排展示3個(gè)月。并計(jì)算每個(gè)月日歷的起始單元格位置。
  •  最后傳入年份,依次將一年12個(gè)月的日歷制作出來(lái),展示在一個(gè)頁(yè)面上。只要有數(shù)據(jù),可以對(duì)任意一年的日歷進(jìn)行可視化。(代碼較長(zhǎng),可在文末獲取完整代碼)

按年的另一種展示方式:

from pyecharts import options as opts
from pyecharts.charts import Calendar
import pandas as pd
nucleic_df = pd.DataFrame()
for i in range(12):
   month_nucleic = made_data(2022, i+1)
   month_df = pd.DataFrame(month_nucleic)
   nucleic_df = pd.concat([nucleic_df, month_df])
data = [[row_data['date'], row_data['nucleic']] for row_index, row_data in nucleic_df.iterrows()]
cal = Calendar(init_opts=opts.InitOpts(width='900px', height='500px'))
cal.add(
   '', data, calendar_opts=opts.CalendarOpts(range_="2022",
                           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')

日歷效果:

pyecharts中的Calendar組件也可以實(shí)現(xiàn)日歷可視化,不過(guò)格式比較固定,展示得比較密集。

  •  本文用python制作了核酸檢測(cè)的日歷,對(duì)核酸檢測(cè)的天數(shù)進(jìn)行可視化。
  •  本文用了兩種方式實(shí)現(xiàn)一年的日歷展示。

到此這篇關(guān)于利用Python制作簡(jiǎn)易的核酸檢測(cè)日歷的文章就介紹到這了,更多相關(guān)Python日歷內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 對(duì)python 數(shù)據(jù)處理中的LabelEncoder 和 OneHotEncoder詳解

    對(duì)python 數(shù)據(jù)處理中的LabelEncoder 和 OneHotEncoder詳解

    今天小編就為大家分享一篇對(duì)python 數(shù)據(jù)處理中的LabelEncoder 和 OneHotEncoder詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-07-07
  • python各種excel寫入方式的速度對(duì)比

    python各種excel寫入方式的速度對(duì)比

    這篇文章主要介紹了python各種excel寫入方式的速度對(duì)比,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-11-11
  • linux之父進(jìn)程使用kill函數(shù)殺死子進(jìn)程方式

    linux之父進(jìn)程使用kill函數(shù)殺死子進(jìn)程方式

    這篇文章主要介紹了linux之父進(jìn)程使用kill函數(shù)殺死子進(jìn)程方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • python用線性回歸預(yù)測(cè)股票價(jià)格的實(shí)現(xiàn)代碼

    python用線性回歸預(yù)測(cè)股票價(jià)格的實(shí)現(xiàn)代碼

    這篇文章主要介紹了python用線性回歸預(yù)測(cè)股票價(jià)格的實(shí)現(xiàn)代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • python使用os.listdir和os.walk獲得文件的路徑的方法

    python使用os.listdir和os.walk獲得文件的路徑的方法

    本篇文章主要介紹了python使用os.listdir和os.walk獲得文件的路徑的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-12-12
  • pytorch分類模型繪制混淆矩陣以及可視化詳解

    pytorch分類模型繪制混淆矩陣以及可視化詳解

    混淆矩陣是ROC曲線繪制的基礎(chǔ),同時(shí)它也是衡量分類型模型準(zhǔn)確度中最基本,最直觀,計(jì)算最簡(jiǎn)單的方法,下面這篇文章主要給大家介紹了關(guān)于pytorch分類模型繪制混淆矩陣以及可視化的相關(guān)資料,需要的朋友可以參考下
    2022-04-04
  • 終止python代碼運(yùn)行的3種方式詳析

    終止python代碼運(yùn)行的3種方式詳析

    這篇文章主要給大家介紹了關(guān)于終止python代碼運(yùn)行的3種方式,python是解釋運(yùn)行的程序,程序進(jìn)入死循環(huán)或者其它異常都會(huì)導(dǎo)致程序無(wú)法正常結(jié)束,需要的朋友可以參考下
    2023-07-07
  • 對(duì)python讀取CT醫(yī)學(xué)圖像的實(shí)例詳解

    對(duì)python讀取CT醫(yī)學(xué)圖像的實(shí)例詳解

    今天小編就為大家分享一篇對(duì)python讀取CT醫(yī)學(xué)圖像的實(shí)例詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01
  • python可視化實(shí)現(xiàn)代碼

    python可視化實(shí)現(xiàn)代碼

    今天小編就為大家分享一篇關(guān)于python可視化實(shí)現(xiàn)代碼,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-01-01
  • Python報(bào)錯(cuò)ImportError:?IProgress?not?found.?Please?update?jupyter?and?ipywidgets解決

    Python報(bào)錯(cuò)ImportError:?IProgress?not?found.?Please?update

    在使用Jupyter Notebook或JupyterLab進(jìn)行交互式編程時(shí),我們可能會(huì)遇到各種導(dǎo)入錯(cuò)誤,本文就來(lái)介紹一下Python報(bào)錯(cuò)ImportError:?IProgress?not?found.?Please?update?jupyter?and?ipywidgets解決,感興趣的可以了解一下
    2024-06-06

最新評(píng)論

渝北区| 江油市| 闻喜县| 故城县| 巴南区| 延边| 浮山县| 景洪市| 隆子县| 五莲县| 衡山县| 九台市| 吐鲁番市| 普定县| 定结县| 皋兰县| 太原市| 保亭| 罗源县| 永康市| 娄烦县| 福海县| 开阳县| 横山县| 东城区| 会东县| 确山县| 温宿县| 阿巴嘎旗| 青川县| 文登市| 澳门| 枝江市| 延庆县| 团风县| 沁源县| 凤城市| 武安市| 天津市| 蓬莱市| 贺兰县|