graphviz画图与中文乱码等问题总结

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了graphviz画图与中文乱码等问题总结相关的知识,希望对你有一定的参考价值。

最近想写一些文档,画一些程序的逻辑图,用了vision,markdown等软件感觉不怎么好用,于是找到graphviz,这款强大的软件。下面介绍一些入门,还有自己在用的过程中遇到的问题

1、中文乱码的问题。

采用graphviz.exe的界面编写好图形语句之后生成图片中文文字显示都没问题,当关闭.gv文件之后再打开.gv文件那么原来里面的中文就会出现乱码。在网上搜到一个解决的办法,重新设定中文自定即:

找到安装路径在 C:\Program Files\Graphviz 2.21\etc\fonts\fonts.conf,找到以下这行: <dir>#FONTDIR#</dir>

改成 Windows 字型路径: <dir>C:\WINDOWS\Fonts</dir>

我没有成功,可能是版本不对,我就没有找到<dir>#FONTDIR#</dir>。

2、闪退的问题。

采用graphviz.exe编辑.gv文件,当编写的内容太多的时候就会出现自动关闭的情况,这个就让我不能忍受了,只能采用.dot或者.gv文件来搞了。

3、下面是自己的一个例子,用例子来解释一下dot的基本语法

 

digraph main {
	
	//graph[rankdir="LR",rank="same"];
	
	/* 这一段是用来注释的
	这里可以描述这段图片意义
	*/
	//子图(使用subgraph声明)可以进行和“父图”类似的设置,唯一注意的是子图必须以cluster做为名称的前缀,这点要注意,不用cluster的话就没有效果了
	subgraph cluster_0 {
		//这段是图cluster_0的属性,可以直接在这里面写
		style=filled;
		color=lightgrey;
		fontname="KaiTi";
		label = "主流程";
		node [style=filled,color=white,fontname="SimSun",shape=box];
		graph[rankdir="LR",rank="same"];
		a0 -> a1[label="XXX"];
		a1-> a2[label="XXX"];
		a2-> a3[label="XX"];
		
		a0[label="start",style=filled,color=red];// 这个节点的颜色会把上的color=white的颜色给覆盖了
		
	}

	subgraph cluster_1{
		graph[rankdir="LR",rank="same"];
		//rankdir="LR";
		//rank="same";
		node [style=filled, color=red,shape=box];
		edge[style=dashed];
		label="节点流程";//这个会乱码
		
		a1->b0[label="yyy"];
		b0-> b1[label="yyx"];
		b1-> b2 [label="xke"];
		b2-> b3;
		
	}
	
}

4、每次运行程序生成图片的命令是:dot -Tpng myimage.dot/myimage.gv -o image.png,反复输入的话会比较烦,如果用一些文本编辑器,可以写一个运行python的脚本会很快,在windows下我们也可以写成批处理脚本比如my.bat,里面就写一句话,以后每次生成图片的时候换个名字就好了。

my.bat

Rem dot -Tpng myimage.dot -o image.png
pause;
dot -Tpng myimage.dot -o myimage.png
pause;

 附:windows系统中文字体的英文名 

新細明體:PMingLiU
細明體:MingLiU
標楷體:DFKai-SB
黑体:SimHei
宋体:SimSun
新宋体:NSimSun
仿宋:FangSong
楷体:KaiTi
仿宋_GB2312:FangSong_GB2312
楷体_GB2312:KaiTi_GB2312
微軟正黑體:Microsoft JhengHei
微软雅黑体:Microsoft YaHei

  

【参考博客】

1、http://blog.csdn.net/lanchunhui/article/details/49472949

2、http://smallx.me/2016/04/10/%E4%BD%BF%E7%94%A8Graphviz%E7%BB%98%E5%88%B6%E6%B5%81%E7%A8%8B%E5%9B%BE%E5%92%8C%E5%85%B3%E7%B3%BB%E5%9B%BE/

3、http://www.graphviz.org/Home.php

4、https://xstarcd.github.io/wiki/windows/windows_cmd_summary_commands.html

以上是关于graphviz画图与中文乱码等问题总结的主要内容,如果未能解决你的问题,请参考以下文章

利用Graphviz绘制逻辑关系依赖图

Graphviz中文乱码问题

解决问题,在pycharm中使用graphviz绘制决策树时,决策树图片中不显示中文(中文字体乱码!!) 图文并茂版!!!

论文画图工具

在 Vim 中使用 graphviz.vim 画图

graphviz 决策树绘图中文乱码解决方法