Utiliser Python pour créer mon calendrier de tests d'acides nucléiques

王林
Libérer: 2023-05-10 14:19:06
avant
845 Les gens l'ont consulté

Utiliser Python pour créer mon calendrier de tests dacides nucléiques

Mes coordonnées sont Shenzhen Depuis 2022, la plupart du temps il faut 24 heures, quelques fois il faut 48 heures, et encore moins souvent il faut 72 heures. Il n'y a plus de situation.

Cet article est transformé en un calendrier basé sur mes enregistrements de tests d'acide nucléique, et les enregistrements de tests d'acide nucléique sont visualisés dans le calendrier.

Entrer les données

La première plage horaire pouvant être trouvée pour les enregistrements de tests d'acide nucléique est d'un mois. Les enregistrements de tests précédents n'ont pas été enregistrés à l'avance, le calendrier a donc été créé en utilisant d'abord les données d'août.

Interrogez les dossiers d'inspection du mois d'août et saisissez-les dans le code.

# coding=utf-8
from datetime import datetime
# 核酸检测数据,1表示当天做了核酸,0表示当天未做核酸
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]
}
Copier après la connexion

Si l'acide nucléique a été effectué le même jour, il est représenté par 1 ; si l'acide nucléique n'a pas été effectué ce jour-là, il est représenté par 0.

La date d'août est générée à l'aide de la bibliothèque standard Python datetime.

Créer un calendrier

Cet article utilise la bibliothèque Python openpyxl pour générer un calendrier dans un tableau Excel.

1. Utilisez openpyxl pour créer une table

import openpyxl
# 创建一个workbook对象,而且会在workbook中至少创建一个表worksheet
wb = openpyxl.Workbook()
# 获取当前活跃的worksheet,默认就是第一个worksheet
ws = wb.active
Copier après la connexion

openpyxl est une bibliothèque en Python pour lire et écrire des fichiers Excel. Vous pouvez l'utiliser après l'installation de pip install openpyxl.

2. Définissez les fonctions d'initialisation du tableau et les paramètres des cellules

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)
Copier après la connexion

Définissez une fonction qui remplit la couleur du tableau avec du blanc, initialise le tableau, définit l'arrière-plan sur un blanc pur et le calendrier est plus beau.

Définissez une fonction pour traiter le format de cellule, puis appelez directement la fonction pour formater la cellule pour une réutilisation facile.

3. Réaliser le calendrier

import calendar
# 将表格填充成白色
init_sheet(ws)
# 设置年月单元格的边框
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)
# 写入内容和设置格式
ws.cell(row=1, column=1).value = '2022年8月'
set_cell_style(ws, r=1, c=1, color='418CFA')
# 写入星期一至星期日,并设置格式
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')
# 获取一个月的天数和第一天是星期几
monthday = calendar.monthrange(2022, 8)
# 设置日历的日期
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
 # 设置单元格格式
 set_cell_style(ws, r=row, c=col, color='000000')
 # 根据核酸结果填充颜色
 if my_nucleic['nucleic'][i] == 1:
 ws.cell(row=row, column=col).fill = PatternFill('solid', fgColor='009B3C')
# 设置行高
for i in range(1, row+1):
 ws.row_dimensions[i].height = 30
# 保存表格
wb.save(filename='show_august_nucleic.xlsx')
wb.close()
Copier après la connexion

Effet calendrier :

Utiliser Python pour créer mon calendrier de tests dacides nucléiques

Comme vous pouvez le constater, je n'ai eu que 4 jours sans acide nucléique en août, et la plupart du temps je l'ai gardé 24 heures.

Introduction à l'implémentation du code :

  • Fusionnez d'abord les 7 premières colonnes de cellules de la première ligne, écrivez l'année et le mois, puis écrivez du lundi au dimanche de gauche à droite dans la deuxième ligne et définissez le format.
  • Utilisez le calendrier de la bibliothèque de calendriers de Python pour renvoyer le jour de la semaine correspondant au premier jour du mois en cours, puis déterminez la position de départ du 1er du calendrier.
  • À partir du 1er, écrivez les dates dans excel une à une. Lorsque la colonne arrive à dimanche, enveloppez la ligne et revenez à la colonne de lundi.
  • Remplissez la couleur de fond des cellules selon que l'acide nucléique a été fait ce jour-là. Dans cet article, si l'acide nucléique est effectué ce jour-là, l'arrière-plan de la date est défini sur vert (la couleur du code d'acide nucléique sur 24 heures). Si aucun acide nucléique n'est effectué, l'arrière-plan de la date est défini sur vert. blanc.
  • Enfin, enregistrez les résultats dans un fichier Excel. Ouvrez le fichier Excel pour voir le calendrier créé.

Créez un calendrier d'un an

Après avoir créé un calendrier d'un mois, continuez à développer et créez un calendrier d'un an. Jetons d'abord un coup d'œil à l'effet :

Utiliser Python pour créer mon calendrier de tests dacides nucléiques

Utiliser Python pour créer mon calendrier de tests dacides nucléiques

. Introduction à la méthode de mise en œuvre :

  • Supplément de données : Étant donné que seuls les enregistrements d'acides nucléiques d'un mois peuvent être trouvés, à l'exception d'août 2022, les données des autres mois de cet article sont générées avec des nombres aléatoires.
  • Encapsulez le code pour créer un calendrier d'un mois et passez l'année et le mois pour générer un calendrier pour n'importe quel mois.
  • Dans le fichier Excel, concevez une ligne à afficher sur plusieurs mois, et cet article affichera une ligne sur 3 mois. Et calculez la position de départ de la cellule du calendrier de chaque mois.
  • Enfin, saisissez l'année, puis créez un calendrier pour 12 mois de l'année et affichez-le sur une seule page. Tant que vous disposez des données, vous pouvez visualiser le calendrier de n’importe quelle année. (Le code est plus long, vous pouvez obtenir le code complet à la fin de l'article)

Une autre méthode d'affichage par année :

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='核酸检测日历', 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')
Copier après la connexion

Effet Calendrier :

Utiliser Python pour créer mon calendrier de tests dacides nucléiques

Le composant Calendrier dans pyecharts peut également réaliser un calendrier visualisation, mais le format Il est relativement fixe et affiché de manière plus intensive.

Résumé

  • Cet article utilise Python pour créer un calendrier pour les tests d'acide nucléique afin de visualiser le nombre de jours pour les tests d'acide nucléique.
  • Cet article utilise deux méthodes pour afficher le calendrier sur un an.
  • Vous avez besoin du code source, entrez directement dans le fond du compte officiel : assistant, mot de passe « calendrier des acides nucléiques » pour obtenir le code complet.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:51cto.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal