graphviz中文乱码和导出图像
graphviz 绘制的图像中如果包含中文, 会出现乱码的情况, 需要修改一下字体.
graphviz 默认的字体并不支持中文, 所以我们需要配置一下字体. 在初始化时添加上字体的属性:
s = Digraph('structs', filename='structs_revisited.gv',
edge_attr={'fontname': 'FangSong'},
node_attr={'fontname': 'SimSun'})
完整的代码为:
from graphviz import Digraph
s = Digraph('structs', filename='structs_revisited.gv',
edge_attr={'fontname': 'FangSong'},
node_attr={'fontname': 'SimSun'})
s.node('znscx', '智能生产线规划')
s.node('wlfp', '物流分配')
s.node('ccgl', '仓储管理')
s.node('pb', '产线排班规划')
s.node('zdl', '最短路物流分配法')
s.node('bgyz', '保管原则')
s.node('ga', '遗传算法')
s.edge('znscx', 'wlfp')
s.edge('znscx', 'ccgl')
s.edge('znscx', 'pb')
s.edge('wlfp', 'zdl')
s.edge('ccgl', 'bgyz')
s.edge('pb', 'ga')
s.view()
生成图片
此外, 如果想到处图片, 最好生成pdf再保存, 或者导出 .gv
文件再编译. 如果直接使用 format=png
生成的图片清晰度较低, 达不到投稿要求. 下面命令将 .gv
编译成 300dpi 的图片:
dot - Tpng - Gdpi = 300 structs_revisited.gv > pic.png
⬅️ Go back