关于Schemdraw生成PNG流程图的三项定制问题咨询
Schemdraw流程图定制解决方案
1. 提高PNG输出分辨率
调用save()方法时,指定dpi参数即可提升输出图片的分辨率,数值越高清晰度越好,例如设置为300或600:
d.save(pngname, dpi=300)
2. 仅修改图形边框颜色(不改变标签颜色)
不要用color()方法(会同时修改边框和标签颜色),改用edgecolor参数单独设置边框颜色,标签颜色将保持主题默认值:
- 创建元素时直接指定:
flow.Box(h=1, edgecolor='blue').label('BBB')
- 对已创建的元素修改:
box = flow.Box(h=1).label('BBB') box.edgecolor('red')
3. 自动调整盒子宽度适配文字
移除盒子的固定宽度参数w,Schemdraw会根据标签文字长度自动调整盒子宽度,避免文字溢出。原代码中溢出的盒子可修改为:
flow.Box(h=1).label('EEEEEEEEEEEEEEEEE')
修改后的完整代码
import schemdraw from schemdraw import flow def main(pngname): schemdraw.theme('dark') d = schemdraw.Drawing() d += flow.Start().edgecolor('red').label('AAA') # 仅修改起始框边框颜色 d += flow.Arrow().down(d.unit/2) d += flow.Box(h=1, edgecolor='green').label('BBB') # 自定义边框颜色 d += flow.Arrow().down(d.unit/2) d += (A := flow.Box(h=1, fill='#acacac', edgecolor='orange').label('CCC')) d += flow.Arrow().right(d.unit/2).at(A.E) d += flow.Box(h=1).label('DDDD') d += flow.Arrow().right(d.unit/2) d += flow.Box(h=1).label('EEEEEEEEEEEEEEEEE') # 自动适配文字宽度 d += flow.Arrow().right(d.unit/2) d += flow.Box(h=1).label('F') d.draw() d.save(pngname, dpi=300) # 提高分辨率 return pngname = 'demo.png' main(pngname)
内容的提问来源于stack exchange,提问作者lucky1928
相关产品推荐
相关产品推荐

