最近想写一些文档,画一些程序的逻辑图,用了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画图与中文乱码等问题总结的更多相关文章

  1. python3 使用matplotlib画图出现中文乱码的情况

    python3使用matplotlib画图,因python3默认使用中unicode编码,所以在写代码时不再需要写 plt.xlabel(u’人数’),而是直接写plt.xlabel(‘人数’). 注 ...

  2. Graphviz使用简介(中文乱码的问题)

    Graphviz使用简介 graphviz是基于dot语言的绘图工具,可以画有向图.无向图.关系图.目录图.流程图等.具体作用可见它的官方网站 一些参考的网址: http://www.open-ope ...

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

    1.修改graphviz配置文件 <dir>C:\WINDOWS\Fonts</dir> 更改为 <dir>~/.fonts</dir> 2.将决策树d ...

  4. python matplotlib.plot画图显示中文乱码的问题

    在matplotlib.plot生成的统计图表中,中文总是无法正常显示.在网上也找了些资料,说是在程序中指定字体文件,不过那样的话需要对plot进行很多设置,而且都是说的设置坐标轴标题为中文,有时候图 ...

  5. Jupyter Notebook里面使用Matplotlib画图 图表中文乱码问题

    可查看以下链接: https://blog.csdn.net/ccblogger/article/details/79613335

  6. Python画图matplotlib展示图中中文乱码

    在用python的 matplotlib 画图的时候,在图表上面有中文乱码问题,如下的: 解决过程: 平台:windows,python2.7步骤一:打开设置文件 import matplotlib ...

  7. seaborn(matplotlib)画图,linux系统中文乱码等问题解决

    data = pd.read_json(json.dumps(issue_dpl)) # set pic size plt.figure(figsize=(13, 5)) sns.set_style( ...

  8. 如何解决 Matlab 画图时中文显示乱码的问题?

    使用的是win10系统,从前几个月某一天,我的matlab的figure里的中文都变成了口口.很是郁闷,还以为是动到了什么配置引起的. 前几天更新了matlab 2018b,发现还有这个问题.就觉得不 ...

  9. redhat6.3 jfreechar中文乱码解决途径

    最近使用到jfreechar的项目,在转移到linux上面时出现中文乱码(中文被显示为框框),网上查了一些资料,结合自身系统的特性,总结了一种安装字体的方式.在说字体安装之前首先上个测试的代码吧:we ...

随机推荐

  1. onItemLongClick+onCreateContextMenu实现长按ListItem弹出不同菜单

    个ListActivity,长按不同的item弹出的菜单不一样 参照

  2. SpringBoot配置Shiro时@RequiresRoles不起作用

    在SpringBoot中配置Shiro,结果@RequiresRoles.@RequiresPermissions等注解都无效 解决方法: 在ShiroConfiguration中注入开启支持aop. ...

  3. 2015年传智播客JavaEE 第168期就业班视频教程16-框架结构测试(加载全spring配置文件)+struts2属性驱动测试

    模块的规范化我们已经做完了,下面我们要做我们的功能了. 如果是模型驱动就是name="对应model的name" 如果用属性驱动的话,必须得把表现层(Action类)里面映射的用于 ...

  4. Associate File Type with Qt In Mac Os and Win

    Win Registry Question One day, my boss want me to finish one function which let the users can double ...

  5. Windows10远程桌面连接配置

    被控电脑在TP-Link路由器 1.基本设置 被控端电脑设置:1)被控端的电脑系统需要是Windows专业版或者企业版,家庭中文版的系统是不支持远程访问功能的: 2)被控端打开远程桌面功能,在系统的设 ...

  6. foo是什么?

    在英文程序员社区里,foo bar baz这些词是常用于作为占位符而使用的.要查wiki的话,这项更合适:http://en.wikipedia.org/wiki/Metasyntactic_vari ...

  7. Linux 基础教程 35-软件包管理-YUM

    YUM基础     使用RPM在Linux中安装.卸载软件或服务进会经常碰到RPM包的依赖,而我们在安装软件A时,提示依赖于软件B,安装软件B时又会出现提示依赖于软件C等一系列的依赖关系.这时大家会提 ...

  8. [c# 20问] 2.如何转换XML文件

    添加System.Xml引用 使用XmlReader转换字符串 DEMO #region Parse Xml private static void ParseXml(string xmlString ...

  9. sweetalert 快速显示两个提示, 第二个显示不出的问题

    今天在使用 sweetalert 做提示框的时候, 有个操作快速做了两次提示, 发现第二次显示不出: sweetAlert({}, function() { $.get('', function() ...

  10. 一起学习《C#高级编程》2--比较对象的相等性

    今后争取每两天能更新一次.平日的诱惑太多,双休只顾玩了,进度有点慢. 接上一讲的,类型的安全性,留下了点小尾巴——比较对象的相等性. C#有四种比较相等的方式:除了“==”运算符外,System.Ob ...