10.09添加git
This commit is contained in:
53
查看进度.py
Normal file
53
查看进度.py
Normal file
@@ -0,0 +1,53 @@
|
||||
from matplotlib import rcParams, pyplot as plt
|
||||
from sqlalchemy import func
|
||||
from orm import db_session, Sample
|
||||
|
||||
# 创建全局绘图对象和轴
|
||||
fig, ax = plt.subplots(figsize=(8, 5))
|
||||
plt.ion() # 启用交互模式
|
||||
|
||||
def visualize_progress():
|
||||
"""
|
||||
可视化 `is_done_flag` 的分布,动态更新进度条。
|
||||
"""
|
||||
|
||||
# 设置全局字体
|
||||
rcParams['font.family'] = 'Microsoft YaHei' # 黑体,适用于中文
|
||||
rcParams['font.size'] = 12
|
||||
|
||||
# 查询数据库中各 is_done_flag 的数量
|
||||
result = db_session.query(
|
||||
Sample.is_done_flag, func.count(Sample.id)
|
||||
).group_by(Sample.is_done_flag).all()
|
||||
|
||||
# 转换为字典
|
||||
data = {flag: count for flag, count in result}
|
||||
|
||||
# 填充缺失的标志为 0
|
||||
for flag in [-1, 0, 1]:
|
||||
data.setdefault(flag, 0)
|
||||
|
||||
# 准备数据
|
||||
labels = ['未完成 (-1)', '计算中(0)', '完成 (1)']
|
||||
values = [data[-1], data[0], data[1]]
|
||||
|
||||
# 清空之前的绘图内容
|
||||
ax.clear()
|
||||
|
||||
# 创建柱状图
|
||||
ax.bar(labels, values, color=['red', 'orange', 'green'])
|
||||
ax.set_title('任务进度分布', fontsize=16)
|
||||
ax.set_xlabel('任务状态', fontsize=14)
|
||||
ax.set_ylabel('数量', fontsize=14)
|
||||
ax.tick_params(axis='both', labelsize=12)
|
||||
|
||||
# 显示具体数量
|
||||
for i, v in enumerate(values):
|
||||
ax.text(i, v + 0.5, str(v), ha='center', fontsize=12)
|
||||
|
||||
# 刷新绘图
|
||||
plt.pause(0) # 暂停一段时间以更新图表
|
||||
|
||||
# 关闭窗口时,停止交互模式
|
||||
# plt.ioff()
|
||||
visualize_progress()
|
||||
Reference in New Issue
Block a user