Heim  >  Artikel  >  Backend-Entwicklung  >  Verwenden Sie Python, um meinen Kalender für Nukleinsäuretests zu erstellen

Verwenden Sie Python, um meinen Kalender für Nukleinsäuretests zu erstellen

王林
王林nach vorne
2023-05-10 14:19:06828Durchsuche

Verwenden Sie Python, um meinen Kalender für Nukleinsäuretests zu erstellen

Meine Koordinaten sind Shenzhen, meistens sind es 24 Stunden, ein paar Mal sind es 48 Stunden und noch seltener sind es 72 Stunden.

Dieser Artikel wird basierend auf meinen Nukleinsäuretestaufzeichnungen in einen Kalender umgewandelt und die Nukleinsäuretestaufzeichnungen werden im Kalender visualisiert.

Daten eingeben

Der früheste Zeitbereich, der für Nukleinsäuretestaufzeichnungen gefunden werden kann, beträgt einen Monat. Frühere Testaufzeichnungen wurden nicht im Voraus gespeichert, daher wurde der Kalender zuerst anhand der August-Daten erstellt.

Fragen Sie die Inspektionsprotokolle im August ab und geben Sie sie in den Code ein.

# 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]
}

Wenn die Nukleinsäure am selben Tag hergestellt wurde, wird dies durch 1 dargestellt. Wenn an diesem Tag keine Nukleinsäure hergestellt wurde, wird dies durch 0 dargestellt.

Das August-Datum wird mithilfe der Python-Standardbibliothek datetime generiert.

Erstellen Sie einen Kalender

In diesem Artikel wird die Python-Bibliothek openpyxl verwendet, um einen Kalender in einer Excel-Tabelle zu generieren.

1. Verwenden Sie openpyxl, um eine Tabelle zu erstellen

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

openpyxl ist eine Bibliothek in Python zum Lesen und Schreiben von Excel-Dateien. Sie können sie verwenden, nachdem pip install openpyxl installiert wurde.

2. Definieren Sie Funktionen für die Tabelleninitialisierung und Zelleneinstellungen

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)

Definieren Sie eine Funktion, die die Tabellenfarbe mit Weiß füllt, die Tabelle initialisiert, den Hintergrund auf reines Weiß setzt und der Kalender schöner aussieht.

Definieren Sie eine Funktion zum Verarbeiten des Zellformats und rufen Sie dann direkt die Funktion auf, um die Zelle für eine einfache Wiederverwendung zu formatieren.

3. Kalender realisieren

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()

Kalendereffekt:

Verwenden Sie Python, um meinen Kalender für Nukleinsäuretests zu erstellen

Wie Sie sehen, hatte ich im August nur 4 Tage ohne Nukleinsäure, und die meiste Zeit habe ich es 24 Stunden lang gehalten.

Einführung in die Code-Implementierung:

  • Fügen Sie zunächst die ersten 7 Zellspalten in der ersten Zeile zusammen, schreiben Sie das Jahr und den Monat, schreiben Sie dann Montag bis Sonntag von links nach rechts in die zweite Zeile und legen Sie das Format fest.
  • Verwenden Sie den Kalender der Python-Kalenderbibliothek, um den Wochentag zurückzugeben, der der erste Tag des aktuellen Monats ist, und bestimmen Sie dann die Startposition des 1. des Kalenders.
  • Schreiben Sie ab dem 1. die Daten einzeln in Excel auf. Wenn die Spalte Sonntag erreicht, brechen Sie die Zeile um und kehren Sie zur Spalte Montag zurück.
  • Füllen Sie die Hintergrundfarbe der Zellen entsprechend der Frage aus, ob an diesem Tag Nukleinsäure hergestellt wurde. Wenn in diesem Artikel an diesem Tag Nukleinsäure hergestellt wird, wird der Hintergrund des Datums auf Grün gesetzt (die Farbe des 24-Stunden-Nukleinsäurecodes). Wenn keine Nukleinsäure hergestellt wird, wird der Hintergrund des Datums auf Grün gesetzt Weiß.
  • Abschließend speichern Sie die Ergebnisse in einer Excel-Datei. Öffnen Sie die Excel-Datei, um den erstellten Kalender anzuzeigen.

Erstellen Sie einen Einjahreskalender

Nachdem Sie einen Einmonatskalender erstellt haben, erweitern Sie ihn weiter und erstellen Sie zunächst einen Einjahreskalender:

Verwenden Sie Python, um meinen Kalender für Nukleinsäuretests zu erstellen

Verwenden Sie Python, um meinen Kalender für Nukleinsäuretests zu erstellen

Einführung in die Implementierungsmethode:

  • Datenergänzung: Da außer August 2022 nur Nukleinsäuredatensätze für einen Monat gefunden werden können, werden die Daten für andere Monate in diesem Artikel mit Zufallszahlen generiert.
  • Kapseln Sie den Code zum Erstellen eines Monatskalenders und übergeben Sie das Jahr und den Monat, um einen Kalender für einen beliebigen Monat zu erstellen.
  • Entwerfen Sie in der Excel-Datei eine Zeile, die mehrere Monate lang angezeigt wird. In diesem Artikel wird dann eine Zeile für drei Monate angezeigt. Und berechnen Sie die Startzellenposition jedes Monatskalenders.
  • Geben Sie abschließend das Jahr ein, erstellen Sie dann einen Kalender für 12 Monate im Jahr und zeigen Sie ihn auf einer Seite an. Solange Sie über die Daten verfügen, können Sie den Kalender für jedes Jahr visualisieren. (Der Code ist länger, den vollständigen Code finden Sie am Ende des Artikels)

Eine andere Anzeigemethode nach Jahr:

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')

Kalendereffekt:

Verwenden Sie Python, um meinen Kalender für Nukleinsäuretests zu erstellen

Die Kalenderkomponente in Pyecharts kann auch einen Kalender realisieren Visualisierung, aber das Format Es ist relativ fest und wird intensiver angezeigt.

Zusammenfassung

  • In diesem Artikel wird mit Python ein Kalender für Nukleinsäuretests erstellt, um die Anzahl der Tage für Nukleinsäuretests zu visualisieren.
  • In diesem Artikel werden zwei Methoden verwendet, um den Kalender für ein Jahr anzuzeigen.
  • Sie benötigen den Quellcode, geben Sie direkt den offiziellen Kontohintergrund ein: Assistent, Passwort „Nukleinsäurekalender“, um den vollständigen Code zu erhalten.

Das obige ist der detaillierte Inhalt vonVerwenden Sie Python, um meinen Kalender für Nukleinsäuretests zu erstellen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:51cto.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen