You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 17:40:30