1. 程式人生 > >graphviz畫圖與中文亂碼等問題總結

graphviz畫圖與中文亂碼等問題總結

pre 字體 自動 軟件 總結 中文 xxx color 描述

最近想寫一些文檔,畫一些程序的邏輯圖,用了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畫圖與中文亂碼等問題總結