python graphviz中文乱码_Graphviz 工具教程

2020-02-07 更新: 调整链接。

2016-11-08 更新: 修改一些文字错误。

2015-12-01 更新: 加入 Sphinx 插件 设置说明。

在 Graphviz 简易教程 中,我介绍了一点 Graphviz 的知识。下面的内容则是我在使用中积累的一些和工具有关的内容。

通用配置

使用下面三个关键字可以指定图片、节点和线段的默认设置。

// 影响图片整张图片的配置

// 左右方向,图片背景色为红色

// 也可以用于 subgraph

graph[rankdir="LR",bgcolor="red"];

// 影响所有节点

node[shape="box"];

// 影响所有线条和箭头

edge[style="dashed"];

指定多个节点

要想一次制定特定的多个节点的属性,可以这样写:

{ node[fillcolor="red"]; node1; node2; node3; }

也可以换行写:

{

node[fillcolor="red"];

node1; node2;

node3;

}

中文乱码问题

若渲染出的图片中出现乱码,检查两项:

文件编码需要使用 utf-8;

指定字体名称。

在 Mac OS X 上,我没有指定字体名称,中文工作得很好。

但在 Windows 上,我的渲染出现了乱码,于是我在 dot 源码中指定了字体名称:

// 影响图片级别的字体

graph[fontname="Microsoft YaHei"];

// 影响 node 中的文字字体

node[fontname="Microsoft YaHei"];

// 影响箭头或线条上的文字字体

edge[fontname="Microsoft YaHei"];

但是在 dot 源码中制定字体会影响其他 OS 下的表现(例如在 OS X 上没有微软雅黑),因此应该在编译的时候通过参数指定字体。

在编译的时候指定字体:

dot -Tpng -Gfontname=SimSun -Nfontname=SimSun -Efontname=SimSun graph.dot

Sphinx 插件

Sphinx 是一个优秀的文档工具。可以直接在其中使用 Graphviz 支持。

需要注意的是,如果在 Windows 上使用 Sphinx ,必须使用参数指定具体的字体,否则就会出现乱码。

这些配置直接写入 conf.py 即可。

# 启用 graphviz 配置

extensions = [ 'sphinx.ext.graphviz' ]

# 为了不影响其他操作系统,需要判断操作系统

if sys.platform == 'win32':

graphviz_dot_args = ['-Gfontname=Simsun', '-Efontname=Simsun', '-Nfontname=Simsun']

Vim 插件

在 Graphviz 简易教程 中,我建议使用 Eclipse 等 IDE 配合插件来编辑 dot 源码。实际上,我自己是使用 wmgraphviz.vim 来编辑 dot 的。默认情况下,wmgraphviz.vim 在 windows 下使用会有问题,主要是由于在它的编译代码中使用了 tee 这个 windows 批处理并不包含的命令。

许多 unix 移植工具中都包含 tee 工具(可参考 这里 ),由于只需要 tee ,我们可以使用 tee.bat ,把这个命令放在 path 路径中即可。

当然也可以直接修改 wmgraphviz.vim 的源码,修改 ftplugin/dot.vim 中的这一行:

let cmd = '!('.a:tool.' -O -T'.a:output.' '.g:WMGraphviz_shelloptions.' '.shellescape(expand('%:p')).' 2>&1) > _ && type _&&type _>>'.shellescape(expand('%:p:r').'.log')

对于上面提到的中文问题,可以直接编辑配置文件:

if has('win32') let g:WMGraphviz_shelloptions="-Gfontname=SimSun -Nfontname=SimSun -Efontname=SimSun"endif

自动刷新的图像查看软件

用 Vim 配合自动刷新的看图软件即可实现一个 Graphviz 编辑器,把屏幕分成两半,一般是 Vim,一半是看图软件,Vim 这边保存之后使用 wmgraphviz.vim 提供的快捷键输出图像,然后另一半的看图软件自动刷新实现预览。

Mac 下的 graphviz 官方 pkg 安装包自带一个 Graphviz.app 工具,安装后自动与扩展名 .gv 关联,双击即可打开预览,在修改 .gv 文件的时候,它将自动刷新;

Mac 下还可以使用 Finder 的预览功能,或者使用 Xee3;

Windows 下可使用资源管理器的预览窗格,或者 IrfanView 的 Shirt+R 快捷键手动刷新,或者 JPEGView 直接支持自动刷新。

标记语言支持

Sphinx 也支持 Graphviz 插件。

两篇很完整的教程

全文完

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值