zoukankan      html  css  js  c++  java
  • graphviz画图与中文乱码等问题总结

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

    1、中文乱码的问题。

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

    找到安装路径在 C:Program FilesGraphviz 2.21etcfontsfonts.conf,找到以下这行: <dir>#FONTDIR#</dir>

    改成 Windows 字型路径: <dir>C:WINDOWSFonts</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

  • 相关阅读:
    翻转链表二
    最短路径算法
    在二叉树中插入节点
    LightOJ 1341
    串的基本操作
    链队列的基本操作
    LightOJ 1370
    poj 3060 Visible Lattice Points
    欧拉函数介绍及简单模板
    zoj 3593 One Person Game
  • 原文地址:https://www.cnblogs.com/boywwj/p/7440179.html
Copyright © 2011-2022 走看看