您必定據說過 」Graphviz 」繪圖軟件吧。Graphviz (Graph Visualization Software) 是一個由AT&T實驗室啓動的開源工具包,它採用dot語言去編寫繪製流程圖。DOT是一種圖形描述語言,很是簡單的。例如,如下爲一段繪製流程圖的dot代碼node
digraph G{
a -> b -> c;
b -> d;
}
運行後,繪製出的流程圖結果以下。python
固然,還能夠經過修改流程圖的形狀、樣式與格式,生成一些比較複雜的圖形。例如,對以上代碼進行完善,修改。
web
digraph G{
a -> b -> c;
b -> d;
a [shape = polygon, sides = 5, peripheries = 3, color = lightblue, style = filled];
c [shape = polygon, sides = 4,style = filled,fillcolor = yellow,skew = 0.4];
d [shape = invtriangle,color = purple,orientation = 30];
}
運行後,效果以下圖所示。
算法
Graphviz 有許許多多的形狀可供你們選擇。如下列出了一些經常使用的繪製形狀。編程
pip install graphviz
安裝完成以後,咱們就能夠經過寫Python代碼,來實現調用Graphviz 去繪製流程圖了。例如,如下代碼能夠生成一張空白的圖片。
微信
from graphviz import Digraph
dot=Digraph(comment='first graphy',filename='firstGraph',format='png')
dot.view()
接下來就能夠在這張空白的圖片對象上繪製流程圖了。如何繪製呢,看如下代碼。網絡
from graphviz import Digraph
dot=Digraph(comment='first graphy',filename='firstGraph',format='png')
dot.node('a', shape='box', style='rounded,filled',label='開始',fontname='Microsoft YaHei')
dot.node('b', shape='parallelogram', style='filled',label='請輸入數據n',fontname='Microsoft YaHei')
dot.edge('a','b')
dot.view()
運行後效果以下圖所示
app
以上代碼中,node函數做用是添加圖形框架,而edge函數顧名思義,做用是繪製圖形之間的關係。view函數則是生成流程圖的圖片並顯示出來。簡單吧。繼續完善一下以上代碼,能夠繪製出一副算法流程圖。
echarts
from graphviz import Digraph
dot=Digraph(comment='first graphy',filename='firstGraph',format='png',)
dot.graph_attr['bgcolor']='gray'
dot.graph_attr['labeljust']='center'
dot.graph_attr['margin']='0.75'
dot.node('a', shape='box', fillcolor='lightblue',style='rounded,filled',label='開始',fontname='Microsoft YaHei')
dot.node('b', shape='parallelogram', fillcolor='lightblue',style='filled',label='請輸入數據 n ',fontname='Microsoft YaHei')
dot.edge('a','b',arrowhead='vee')
dot.node('c', shape='rectangle', fillcolor='lightblue',style='filled',label='i=1,s=0',fontname='Microsoft YaHei')
dot.edge('b','c',arrowhead='vee')
dot.node('d', shape='diamond', fillcolor='lightblue',style='filled',label='i<n',fontname='Microsoft YaHei')
dot.edge('c','d',arrowhead='vee')
dot.node('e', shape='rectangle', fillcolor='lightblue',style='filled',label='s+=i',fontname='Microsoft YaHei')
dot.edge('d','e',label='Yes',arrowhead='vee')
dot.node('f', shape='rectangle', fillcolor='lightblue',style='filled',label='i+=1',fontname='Microsoft YaHei')
dot.edge('e','f',arrowhead='vee')
dot.edge('f','d',arrowhead='vee')
dot.node('g', shape='parallelogram', fillcolor='lightblue',style='filled',label='打印 s 的值',fontname='Microsoft YaHei')
dot.edge('d','g',label='No',arrowhead='vee')
dot.node('h', shape='parallelogram', fillcolor='lightblue',style='rounded,filled',label='結束',fontname='Microsoft YaHei')
dot.edge('g','h',arrowhead='vee')
dot.view()
固然,Python中的「graphviz」庫不只能夠繪製流程圖,更重要的是,利用它能夠輔助繪製出一些重要算法的運算結果與框架圖。例如,能夠利用它繪製決策樹算法的運算結果圖。
框架
Python 青少年編程
用Pyecharts作數據可視化,驚豔的你不要不要的(一)!
用Pyecharts作數據可視化,驚豔的你不要不要的(二)!
用Pyecharts作數據可視化,驚豔的你不要不要的(三)!
用Pyecharts作數據可視化,驚豔的你不要不要的(四)!
用Pyecharts作數據可視化,驚豔的你不要不要的(五)!
用Pyecharts作數據可視化(六)---手把手教你製做最流行的動態變化圖!
Python公益課堂:
Python青少年編程推出公益課堂啦,今天推出第一講,進來看看吧!
Python青少年編程公益課堂第二講----turtle繪圖中的幾個重要函數及其應用
本文分享自微信公衆號 - python 青少年編程(gh_73f62b58c679)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。