成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

程序員輕松繪圖神器

運(yùn)維 系統(tǒng)運(yùn)維
利用 dot 命令來(lái)繪圖,非常省事,也非常靈活,對(duì)于設(shè)計(jì)菜鳥(niǎo)而言,簡(jiǎn)直不能太方便!它的功能十分強(qiáng)大,本文所介紹的只是它非常常用,但也是非常實(shí)用的一些基本功能。

我們程序員在工作生活中,有很多場(chǎng)合下需要繪制圖表,比如PPT里的圖表,學(xué)習(xí)筆記的一些助記圖,還有最常見(jiàn)的,工作中大量使用的流程圖。

在 Window 下,我們有很多好用的工具,比如 Visio 、 EA 等等。這些軟件也很好用,但都有個(gè)缺點(diǎn),那就是太復(fù)雜。我們需要一定的美工基礎(chǔ),還要學(xué)很多軟件操作,才能畫(huà)出一張很簡(jiǎn)單的流程圖。

而且,更要命的是,一旦需求發(fā)生變動(dòng),很不好修改,往往牽一發(fā)而動(dòng)全身。所以經(jīng)常在聽(tīng)到需求變更的時(shí)候,良許就脊背一涼……

后來(lái),在大神的介紹下,良許開(kāi)始使用一個(gè)神器。這個(gè)神器不需要你懂美工,也不太需要懂軟件操作,繪圖的過(guò)程跟你寫軟件的過(guò)程差不多,短短的幾行代碼,就能把你頭腦里的想法表現(xiàn)出來(lái)。

而且,不用擔(dān)心布局,不用擔(dān)心修改,甚至都不用鼠標(biāo),也給制作出相當(dāng)精美的作品!

這個(gè)神器就是:dot 命令!

這個(gè)神器還有個(gè)圖形界面版,叫 Graphviz ,但良許習(xí)慣了命令行,一般是在命令行下完成的。

我們先來(lái)看下它能做什么。以下幾個(gè)圖片選自它的官網(wǎng):

 

 

程序員輕松繪圖神器
程序員輕松繪圖神器

 

 

程序員輕松繪圖神器

 

 程序員輕松繪圖神器

這只是其中的幾張圖而已,更多圖片可以去它的官網(wǎng)查看:http://www.graphviz.org。

這個(gè)軟件非常強(qiáng)大,如果掌握得好的話,可以畫(huà)出非常好看的作品,而且還不怕產(chǎn)品經(jīng)理改需求。但是,在大多數(shù)情況下,我們不太需要用到它的高級(jí)功能,往往一些很基礎(chǔ)的功能就可以應(yīng)付我們工作中的 80% 以上的需求了。

這個(gè)軟件的安裝很簡(jiǎn)單,只需執(zhí)行以下命令即可:

  1. sudo apt install graphviz 

稍等一小會(huì)兒,就安裝成功了。然后,就可以愉快地玩耍啦~

我們先來(lái)看看一個(gè) Hello world 水平的作品。

首先,在任意位置創(chuàng)建一個(gè) test.dot 文件(當(dāng)然也可以叫其它名字),文件的內(nèi)容如下:

  1. graph g{ 
  2.      "Hello" -- "world" 

然后,執(zhí)行以下命令:

  1. dot -Tpng -o test.png test.dot 

之后,就在當(dāng)前目錄下生成了下面這幅最簡(jiǎn)單的圖片了,是不是非常簡(jiǎn)單?

程序員輕松繪圖神器

我們來(lái)簡(jiǎn)單介紹下 DOT 命令的語(yǔ)法。在 test.dot 文件里,graph 表示的是這幅圖是 無(wú)向圖,也就是連接線是沒(méi)有箭頭的。與之對(duì)應(yīng)的是 digraph ,表示 有向圖 ,連接線是有箭頭的。

而圖片的描述,是在 {} 里進(jìn)行,并且也支持注釋,注釋風(fēng)格與 C 語(yǔ)言類似,// 用于單行注釋, /**/ 用于多行注釋。

前文提到,dot 命令十分強(qiáng)大,這里只介紹它的最基本的一些用法,而學(xué)會(huì)這些最基本的命令,就可以應(yīng)對(duì) 80% 左右的工作。更多高級(jí)用法可以參考它的官網(wǎng)。

節(jié)點(diǎn)

類似于腳本語(yǔ)言,節(jié)點(diǎn)無(wú)需申明就可以直接使用。而對(duì)于節(jié)點(diǎn),我們一般設(shè)置它的以下幾個(gè)屬性:

  • shape 形狀
  • label 標(biāo)簽
  • style 類型,填充還是非填充
  • color 線條顏色
  • fillcolor 填充顏色

這些屬性是在節(jié)點(diǎn)后的一對(duì)方括號(hào) [] 里設(shè)置的。很多情況下,我們的節(jié)點(diǎn)屬性是完全相同的,那么我們可以定義一個(gè) node ,并對(duì)它進(jìn)行設(shè)置,那么圖形里所有節(jié)點(diǎn)屬性都跟 node 一樣。如果某個(gè)節(jié)點(diǎn)想搞特殊,只需單獨(dú)對(duì)它進(jìn)行設(shè)置即可。

  1. graph g{ 
  2.     node [shape = "box"style = "filled"color = "red"fillcolor = "green"]   //設(shè)置節(jié)點(diǎn)的默認(rèn)形狀,類型,顏色,填充顏色 
  3.     a [shape = "ellipse"fillcolor = "yellow"label = "Hello"]    //對(duì)某個(gè)節(jié)點(diǎn)進(jìn)行單獨(dú)設(shè)置 
  4.     b [label = "world"]    
  5.     a -- b 
  6.     a -- c     //不對(duì)c進(jìn)行設(shè)置,使用默認(rèn)屬性 
  7.     d [shape = "circle"label = "cicle"]    //d單獨(dú)設(shè)置屬性 
  8.     c -- d 
程序員輕松繪圖神器

連接線

連接線依照有無(wú)箭頭分為有向邊和無(wú)向邊。它的常用屬性有如下:

  • style 類型,實(shí)線還是虛線
  • color 連接線顏色
  • label 標(biāo)簽
  • labelfontcolor 標(biāo)簽字體顏色
  • headlabel 起始標(biāo)簽內(nèi)容
  • taillabel 結(jié)束標(biāo)簽內(nèi)容
  • decorate 標(biāo)簽與連接線之間有連線標(biāo)注

對(duì)于有向邊,還可以設(shè)置起點(diǎn)及終點(diǎn)的位置,用 e, s, w, n 表示 東南西北 ,也可以組合來(lái)表示,詳細(xì)請(qǐng)看下面實(shí)例。

和節(jié)點(diǎn)類似,連接線也可以設(shè)置默認(rèn)屬性,用 edge 表示。如果不使用默認(rèn)屬性的話,也可以自定義屬性。

  1. digraph edge_settings { 
  2.     edge [color = "green"decorate = false]        //設(shè)置邊的默認(rèn)屬性 
  3.     node [shape = "polygon"sides = 4color = "blue"
  4.     a -> b [style = "dotted"color = "red"label = "a to b"]  //設(shè)置style、color、label 
  5.     b: se -> c: w [headlabel = "end",  taillabel = "start"]     //設(shè)置邊從b的“東南方”出發(fā),從c的“西方”結(jié)束,設(shè)置有向邊起點(diǎn)和終點(diǎn)的label 
  6.     {c, f} -> {d, e} [label = "multi-lines"decorate = true]    //可以用這種方式同時(shí)畫(huà)多條邊 
程序員輕松繪圖神器

DOT語(yǔ)言可以描述無(wú)向圖和有向圖兩種圖,graph標(biāo)識(shí)無(wú)向圖,digraph標(biāo)識(shí)有向圖。對(duì)于圖的屬性設(shè)置,常用的有以下一些:

  • size 尺寸
  • label 標(biāo)簽
  • labelloc 標(biāo)簽位置,通常設(shè)置為 t (頂),或 b (底)
  • labeljust 標(biāo)簽對(duì)齊,比如左對(duì)齊、右對(duì)齊、居中,等等
  • bgcolor 背景顏色
  • rankdir 布局,比如從左往右,或者從上往下

圖里面還可以包含子圖,子圖必須以 cluster 作為前綴開(kāi)始。比如官網(wǎng)首頁(yè)上的圖,即本文第一張圖,就是圖里包含子圖,它的源碼如下:

  1. digraph graph_settings { 
  2.     start [shape = "Mdiamond"
  3.     end [shape = "Msquare"
  4.  
  5.     subgraph cluster_sub1 { 
  6.         label = "process #1" 
  7.         labelloc = "t" 
  8.         bgcolor = "gray55" 
  9.         node [style = "filled"color = "white"
  10.         a0 -> a1 -> a2 -> a3 -> a0 
  11.     } 
  12.     subgraph cluster_sub2 { 
  13.         label = "process #2" 
  14.         labelloc = "t" 
  15.         color = "blue" 
  16.         node [style = "filled"color = "black"fillcolor = "gray55"
  17.         b0 -> b1 -> b2 -> b3 
  18.     } 
  19.  
  20.     start -> {a0, b0} 
  21.     a1 -> b3 
  22.     b2 -> a3 
  23.     {a3, b3} -> end 

小結(jié)

利用 dot 命令來(lái)繪圖,非常省事,也非常靈活,對(duì)于設(shè)計(jì)菜鳥(niǎo)而言,簡(jiǎn)直不能太方便!它的功能十分強(qiáng)大,本文所介紹的只是它非常常用,但也是非常實(shí)用的一些基本功能,掌握這些功能就能應(yīng)對(duì)工作中絕大部分的場(chǎng)景。但想要做出更加炫酷的效果,還需要再細(xì)細(xì)研究它官網(wǎng)的資料。

本文授權(quán)轉(zhuǎn)載自公眾號(hào)「良許Linux」。良許,世界500強(qiáng)外企Linux開(kāi)發(fā)工程師,公眾號(hào)里分享大量Linux干貨,歡迎關(guān)注!

 

責(zé)任編輯:趙寧寧 來(lái)源: 今日頭條
相關(guān)推薦

2019-11-27 10:08:36

程序員技能開(kāi)發(fā)者

2022-01-26 07:18:57

CopyTransl閱讀翻譯文本翻譯

2019-04-08 09:37:30

國(guó)內(nèi)程序員美國(guó)程序員996.ICU

2012-03-06 09:22:46

程序員

2013-08-20 09:33:59

程序員

2021-08-10 14:21:02

開(kāi)發(fā)程序員工具

2021-05-12 11:08:33

PPT代碼工具

2009-05-21 15:58:12

程序員工作經(jīng)驗(yàn)職場(chǎng)

2011-05-13 14:34:02

程序員

2023-08-07 16:10:15

2013-07-12 10:58:16

程序員

2015-04-10 19:37:34

程序員

2022-03-16 11:10:19

程序員社區(qū)技術(shù)

2010-09-01 11:06:16

程序員

2015-08-11 14:45:51

程序員

2012-11-22 14:00:26

程序員

2017-11-14 21:30:15

2018-04-23 11:00:06

程序員養(yǎng)生健康

2020-07-17 09:55:11

程序員技能開(kāi)發(fā)者

2018-10-10 15:52:48

程序員代碼編程
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: www免费视频 | 欧美日韩不卡合集视频 | 亚洲在线 | 久久精品一区二区视频 | 九九九精品视频 | 亚洲精品一区二区在线 | 亚洲国产成人精品女人久久久 | 最新国产精品精品视频 | 欧美综合自拍 | 激情av网站 | 精品乱码久久久久 | 欧美中文一区 | a黄毛片| 日韩成人精品一区二区三区 | 国产成人高清成人av片在线看 | 国产一区二区三区在线 | 日韩一区在线观看视频 | 999精品视频 | 999国产视频 | 日韩欧美视频在线 | 超碰欧美 | 8x国产精品视频一区二区 | 久久天堂 | 五月天国产视频 | 日韩精品一区在线 | 婷婷亚洲综合 | 在线免费黄色小视频 | 日韩一区二区av | 天天干天天玩天天操 | 逼逼视频 | 亚洲乱码一区二区三区在线观看 | 亚洲一区视频在线 | 国产成人综合亚洲欧美94在线 | 欧美成人精品一区 | 国产精品亚洲一区二区三区在线观看 | 国产午夜精品一区二区三区四区 | 日韩精品在线看 | 久久久国产精品视频 | 国产精品免费观看视频 | 99国产精品久久久 | 2018国产大陆天天弄 |