今天让我来分享一下,我常用的一些图形工具,主要有两类:

  • 流程图
  • 数据可视化

流程图:Graphviz

说到流程图还是再次提及一下,我们之前说到的Graphviz 。

Graphviz (英文:Graph Visualization Software的缩写)是一个由AT&T实验室启动的开源工具包,用于绘制DOT语言脚本描述的图形。它也提供了供其它软件使用的库。

它的主要特点是代码生成图像,并且足够的简单。

在我的那个“Web Developer 成长路线图”里,就是用这个工具生成下面这个复杂的图形。

而其代码特别简单——和我们平时表达的手法是一样的,即:

"包管理" -> "包发布" -> "自动部署"
"CLI" -> "部署"
"脚本语言(Bash,Perl,Ruby,Python etc)" -> "部署"
"脚本语言(Bash,Perl,Ruby,Python etc)" -> "构建"
"*nix" -> "软件编译" -> "部署"
"构建" -> "软件编译"

Graphviz有一个大的优点和弱点是:自动生成,导致画线的时候很出现出问题。接着,我们就来看看手动画线的例子。

流程图: Visio vs Dia vs OmnIGraffle

在Windows世界里,在这一类的工具里面最常见的算是Visio:

遗憾的是,它并不支持在Mac OS上使用。而且,它并不在我购买的Office 365套装里。

在Mac世界里,最好的工具算是OmniGraffle,就是很贵——我们平时使用的是公司的Mac电脑,使用盗版软件是有法律风险的。

在GNU/Linux世界里,我们使用Dia。

Dia 是开放源代码的流程图软件,是GNU计划的一部分,程序创立者是Alexander Larsson。Dia使用单一文件界面模式,类似于GIMP与Inkscape。 Dia将多种需求以模块化来设计,如流程图、网络图、电路图等。各模块之间的符号仍是可以通用的,并没有限制。

顺便安利一下,我最喜欢的操作系统OpenSuSE——简洁、尾长、绿色。

OpenSuSE在KDE桌面下效果最赞了——因为KDE和OpenSuSE都是德国制造。总的来说,会比Debian系的Debian和Ubunt,及RetHat系的CentOS及Fedora稳定、漂亮。

令人遗憾的是这三个工具,我都用不了。Mac对X Windows的支持不是一般的差,于是我就需要别的替代工具。

在线流程图:Processon

这个工具还是相当好用,至少是在GxFxW内比较快——我之前使用过Creately、draw.io、Gliffy等等的一些工具,只是随着版图的扩展,很多地区都已经“xx”了。

不过遗憾的是:他们没有给我广告费。

ProcessOn是一个在线协作绘图平台,为用户提供最强大、易用的作图工具!支持在线创作流程图、BPMN、UML图、UI界面原型设计、iOS界面原型设计等。

同样的,在我的那个“Developer进阶书单”中,就是用这个工具画出规规矩矩的线。

并且,它还是跨平台的。

各种图: Word和Excel

由于翻译和写书的需要,我成了一个Office 365订阅用户。于是发现在Word等一系列的Office工具中,自带了一个SmartArt的工具:

可以画出很多很有意思的图形,比如:

又或者是:

分分钟就能画一个的节奏。

脑图: XMind

我想这个一般人都是知道的。

XMind思维导图软件被著名互联网媒体Lifehacker评选为“最佳头脑风暴和思维导图工具”及”最受欢迎的思维导图软件”。

它有一个很大的优点是使用了全球最先进的Eclipse RCP 软件架构,支持跨平台使用。它有一个很大的缺点是使用了全球最先进的Eclipse RCP 软件架构,导致了有点卡。

相比于流程图什么的,它只适合做脑图。

如果你还在使用Eclipse,那么你应该试试Intellij IDEA了。

各种图:D3.js

D3.js(D3或Data-Driven Documents)是一个用动态图形显示数据的JavaScript库,一个数据可视化的工具。

与上面的工具相比,这个工具可能没有那么方便。但是,作为一个数据可视化工具,它不仅仅可以做出各种炫酷的图形。

还可以做出一个技能树:

这个项目的GitHub见:https://github.com/phodal/sherlock

地图:Leaflet

Leaflet 是一个为建设移动设备友好的互动地图,而开发的现代的、开源的JavaScript 库。

虽然它与上面的图形没有啥关系,但是它带了一个图字啊。与Google Map原生的API,或者OpenStreet相比,它最大的优点是对移动设备支持好。

并且,它也是一个可以根据数据(GEOJSON,地理数据)生成图形的工具。

更多精彩内容欢迎关注我的微信公众号:Phodal

程序员应该知道的七个图形工具相关推荐

  1. 高效程序员应该养成的七个习惯

    对于软件工程师来说,工作也许意味着许多东西 -- 稳定的收入.做自己感兴趣的项目.找一份更好工作的跳板,或者你只是喜欢与其他程序员共事.但说到"效率",强调的是在一定时间内按质完成 ...

  2. 软件之路:程序员修行路上的七个必经阶段

    软件之路:程序员修行路上的七个必经阶段 目录 软件之路:程序员修行路上的七个必经阶段

  3. 程序员都在用什么高效率的工具?

    程序员都在用什么高效率的工具? Apifox 最好用的接口管理神器,没有之一,秒杀市面上所有同类产品. Apifox 是 API 文档.API 调试.API Mock.API 测试一体化协作平台,定位 ...

  4. 这些是不是程序员爱不释手的10款神级工具【萝卜青菜各有所爱】

    程序员爱不释手的10款神级工具,有你所用的一款吗? 一.Wireshark Wireshark是广大黑客.网络攻城狮的最爱,极大的方便了我们抓取.分析网络数据包. 二.VMware VMware虚拟机 ...

  5. Python 程序员必知必会的开发者工具

    Python 程序员必知必会的开发者工具 Python已经演化出了一个广泛的生态系统,该生态系统能够让Python程序员的生活变得更加简单,减少他们重复造轮的工作.同样的理念也适用于工具开发者的工作, ...

  6. Java程序员高效开发必备的5大工具,IDEA黑色主题让程序员爽翻!

    2018年最有钱途的编程语言排行榜出炉,Java排名高居第一. 在整个的编程界,从事java开发的程序相对来说较多. Java程序员为了提高开发效率,必备的工具有哪些呢?下面w3cschool就给各位 ...

  7. JAVA程序员技术栈、业务栈、工具栈

    JAVA程序员技术栈.业务栈.工具栈 目录: 1.技术栈 2.业务栈 3.工具栈 今天是实习期以来将近100天了,感谢公司给予的期望与同事们提供的帮助.好久没更新博客了,一是懒于写,二是文章写得不够深 ...

  8. 好程序员web培训简述web前端开发工具有哪些

    好程序员web培训简述web前端开发工具有哪些,随着互联网技术的发展,用户对于web网页的依赖性越来越重,这对于web前端开发工程师的要求也在不断提高.作为开发者来说,开发工作需要依赖很多开发工具的协 ...

  9. 程序员最头疼的七件事

    懂点技术,瞎指挥 有人说不懂技术的瞎指挥很可怕,我倒是觉得懂点技术,然后指手画脚更可怕! 有个国企的项目,甲方负责人李总是个局里的二把手,不知道什么时候了解了一点编程的技术, 每次开需求会都是和我们大 ...

最新文章

  1. 服务器不能显示皮肤,服务器控件gridview扩展,为什么不能应用皮肤?
  2. Linux服务器网卡驱动安装及故障排除(转)
  3. 图解首次使用流光5.0
  4. linux——关于ip、静态网络、动态网络、网关、DNS的设置
  5. Spring中Bean创建完成后执行指定代码的几种实现方式
  6. 死磕 java集合之TreeMap源码分析(三)- 内含红黑树分析全过程
  7. [CB]TForm应用技巧
  8. python中统计数据的总和_Python 数据的累加与统计的示例代码
  9. Linux之pwd命令
  10. Oracle数据库中查看所有表和字段以及表注释.字段注释
  11. [Matlab] norm函数用法(用于RMSE和R2)
  12. 生产质量分析,助力企业掌握影响质量的全量数据
  13. 手机上什么App能连接mysql_这款APP让你的手机瞬间变身服务器,php+mysql,太硬核了!...
  14. EMC VMAX存储的内存布局
  15. 2014江西理工大学C语言程序竞赛高级组
  16. g2o学习记录(4)cmake-gui再次编译g2o及不太完美的处理cs.h错误[20190323已找到完美解决方案](非干货纯记录,可不看)
  17. svg上传服务器无法显示,让WordPress支持上传SVG格式图片并显示在媒体库中的方法...
  18. 你是外包,麻烦不要随便偷吃公司的零食
  19. 手把手教你如何写一个三子棋/N子棋的小游戏
  20. 4.四大组件的工作过程

热门文章

  1. 利用均值漂移实现图像分割的原理和OpenCV代码
  2. mysql 共享表空间_MySQL共享表空间概念
  3. Ubuntu 11.10更新源地址列表更改方法及下载
  4. ASCII码表完整版
  5. Perl内置及特殊变量
  6. Spring中Map的key为对象引用的注入
  7. leetcode算法题--扁平化嵌套列表迭代器
  8. js_高级_面向对象编程案例---理解面向对象编程思想很重要
  9. MobPush精准把握用户的使用时间
  10. Python入门(一)了解与安装