fix: emoji色球→原生圆形形状·图例色块化
This commit is contained in:
parent
f86a2a8a82
commit
db3d19f30d
Binary file not shown.
@ -43,6 +43,15 @@ def kpi(l,t,w,h,num,lbl,nc=BLUE,ns=44,ls=9):
|
|||||||
T(l,t+Inches(0.06),w,Inches(0.5),str(num),sz=ns,clr=nc,b=True,al=PP_ALIGN.CENTER)
|
T(l,t+Inches(0.06),w,Inches(0.5),str(num),sz=ns,clr=nc,b=True,al=PP_ALIGN.CENTER)
|
||||||
T(l,t+Inches(0.55),w,Inches(0.18),lbl,sz=ls,clr=GRAY,al=PP_ALIGN.CENTER)
|
T(l,t+Inches(0.55),w,Inches(0.18),lbl,sz=ls,clr=GRAY,al=PP_ALIGN.CENTER)
|
||||||
|
|
||||||
|
def warn_card(l,t,w,h,num,lbl,dot_color=RED,ns=28):
|
||||||
|
"""预警卡片:色球+数字+标签"""
|
||||||
|
R(l,t,w,h,fill=BG)
|
||||||
|
# 色球 (circle)
|
||||||
|
s=prs.slides[-1].shapes.add_shape(MSO_SHAPE.OVAL,l+Inches(0.25),t+Inches(0.04),Inches(0.22),Inches(0.22))
|
||||||
|
s.fill.solid(); s.fill.fore_color.rgb=dot_color; s.line.fill.background()
|
||||||
|
T(l,t+Inches(0.26),w,Inches(0.28),str(num),sz=ns,clr=dot_color,b=True,al=PP_ALIGN.CENTER)
|
||||||
|
T(l,t+Inches(0.55),w,Inches(0.18),lbl,sz=8,clr=GRAY,al=PP_ALIGN.CENTER)
|
||||||
|
|
||||||
def donut(l,t,w,h,vals,labels,colors):
|
def donut(l,t,w,h,vals,labels,colors):
|
||||||
"""原生饼图"""
|
"""原生饼图"""
|
||||||
cd=CategoryChartData()
|
cd=CategoryChartData()
|
||||||
@ -133,19 +142,23 @@ CARD_W=Inches(0.85); CARD_H=Inches(0.7); CARD_GAP=Inches(0.08)
|
|||||||
CY=RY2+Inches(0.48)
|
CY=RY2+Inches(0.48)
|
||||||
|
|
||||||
warn_data=[
|
warn_data=[
|
||||||
('5', '预警总计', RED, 36),
|
('5', '预警总计', RED, 36, None),
|
||||||
('0', '红色🔴', RED, 28),
|
('0', '红色', RED, 28, RED),
|
||||||
('1', '橙色🟠', RED, 28),
|
('1', '橙色', RED, 28, RGBColor(0xF0,0x80,0x00)),
|
||||||
('4', '黄色🟡', GOLD, 28),
|
('4', '黄色', GOLD, 28, GOLD),
|
||||||
('23', '未完成审批', GRAY, 28),
|
('23', '未完成审批', GRAY, 28, None),
|
||||||
]
|
]
|
||||||
for idx,(num,lbl,clr,ns) in enumerate(warn_data):
|
for idx,(num,lbl,clr,ns,dot) in enumerate(warn_data):
|
||||||
cx=MX2+Inches(0.12)+Inches(idx*(CARD_W+CARD_GAP))
|
cx=MX2+Inches(0.12)+Inches(idx*(CARD_W+CARD_GAP))
|
||||||
kpi(cx,CY,CARD_W,CARD_H,num,lbl,nc=clr,ns=ns,ls=8)
|
if dot:
|
||||||
|
warn_card(cx,CY,CARD_W,CARD_H,num,lbl,dot_color=dot,ns=ns)
|
||||||
|
else:
|
||||||
|
kpi(cx,CY,CARD_W,CARD_H,num,lbl,nc=clr,ns=ns,ls=8)
|
||||||
|
|
||||||
# Legend right-aligned
|
# Legend with colored rects
|
||||||
T(MX2+Inches(4.9),CY+Inches(0.05),Inches(1.0),Inches(0.65),
|
for j,(txt,clr) in enumerate([('在实施未审批',RED),('≤30天',RGBColor(0xF0,0x80,0x00)),('≤45天',GOLD)]):
|
||||||
'🔴 在实施未审批\n🟠 ≤30天\n🟡 ≤45天',sz=7,clr=GRAY,al=PP_ALIGN.RIGHT)
|
R(MX2+Inches(4.95),CY+Inches(0.05+j*0.18),Inches(0.12),Inches(0.12),fill=clr)
|
||||||
|
T(MX2+Inches(5.1),CY+Inches(0.04+j*0.18),Inches(0.8),Inches(0.15),txt,sz=7,clr=GRAY)
|
||||||
|
|
||||||
# Row 2: 审批率 + 进度条
|
# Row 2: 审批率 + 进度条
|
||||||
PY=RY2+Inches(1.3)
|
PY=RY2+Inches(1.3)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user