matplotlib學習筆記

1.簡介html

  matplotlib是python的一個2D繪圖庫,它能夠在不一樣平臺上地使用多種通用的繪圖格式(hardcopy formats)和交互環境繪製出出版物質量級別的圖片。matplotlib能夠經過python腳本,python/ipython shell,web application servers以及six圖像用戶接口工具箱來調用。node

  其官方地址:http://matplotlib.org/index.htmlpython

2.使用案例web

 2.1 繪製決策樹*shell

 *該代碼來自於《機器學習實戰》api

 

 1 # -*- coding: utf-8 -*-
 2 """
 3 Created on Thu Mar 17 20:24:41 2016
 4 
 5 @author: Dale
 6 """
 7 
 8 import matplotlib.pyplot as plt
 9 
10 decisionNode = dict(boxstyle = "sawtooth", fc = "0.8")
11 leafNode = dict(boxstyle = "round4", fc = "0.8")
12 arrow_args = dict(arrowstyle = "<-")
13 
14 def plotNode(nodeTxt, centerPt, parentPt, nodeType):
15     '''
16     下面這個函數原型是class matplotlib.axes.Axes()的成員函數annotate()
17     該函數的做用是爲繪製的圖上指定的數據點xy添加一個註釋nodeTxt,註釋的位置由xytext指定
18     其中,xycoords來指定點xy座標的類型,textcoords指定xytext的類型,xycoords和textcoords的取值以下:
19     ‘figure points’:此時座標表示座標原點在圖的左下角的數據點
20     ‘figure pixels’:此時座標表示座標原點在圖的左下角的像素點
21     ‘figure fraction’:此時取值是小數,範圍是([0, 1], [0, 1])
22                         ,在圖的最左下角時xy是(0,0), 最右上角是(1, 1)
23                         ,其餘位置按相對圖的寬高的比例取小數值
24     ‘axes points’:此時座標表示座標原點在圖中座標的左下角的數據點
25     ‘axes pixels’:此時座標表示座標原點在圖中座標的左下角的像素點
26     ‘axes fraction’:相似‘figure fraction’,只不過相對圖的位置改爲是相對座標軸的位置
27     ‘data’:此時使用被註釋的對象所採用的座標系(這是默認設置),被註釋的對象就是調用annotate這個函數
28             那個實例,這裏是ax1,是Axes類,採用ax1所採用的座標系
29     ‘offset points’:此時座標表示相對xy的偏移(以點的個數計),不過通常這個是用在textcoords
30     ‘polar’:極座標類型,在直角座標系下面也能夠用,此時座標含義爲(theta, r)
31     
32     參數arrowprops含義爲鏈接數據點和註釋的箭頭的類型,該參數是dictionary類型,該參數含有一個
33     名爲arrowstyle的鍵,一旦指定該鍵就會建立一個class matplotlib.patches.FancyArrowPatch類的實例
34     該鍵取值能夠是一個可用的arrowstyle名字的字符串,也能夠是可用的class matplotlib.patches.ArrowStyle類的實例
35     具體arrowstyle名字的字符串能夠參考
36     http://matplotlib.org/api/patches_api.html#matplotlib.patches.FancyArrowPatch
37     裏面的class matplotlib.patches.FancyArrowPatch類的arrowstyle參數設置
38     
39     函數返回一個類class matplotlib.text.Annotation()的實例
40     '''
41     createPlot.ax1.annotate(nodeTxt, xy = parentPt, xycoords = 'axes fraction', va = 'center', ha = 'center', bbox = nodeType, arrowprops = arrow_args)
42     
43 def createPlot():
44     fig = plt.figure(1, facecolor='white') #建立新的figure 1, 背景顏色爲白色
45     fig.clf()  #清空figure 1的內容
46     '''
47      在新建的figure 1裏面建立一個1行1列的子figure的網格,並把網格里面第1個子figure的Axes實例axes返回給ax1做爲函數createPlot()的屬性
48     ,這個屬性ax1至關於一個全局變量,能夠給plotNode函數使用
49     '''
50     createPlot.ax1 = plt.subplot(111, frameon=False)
51     plotNode('a decision node', (0.5, 0.1), (0.1, 0.5),  decisionNode)
52     plotNode('a leaf node', (0.8, 0.1), (0.3, 0.8), leafNode)
53     plt.show()

 

運行createPlot()函數的結果以下:app

相關文章
相關標籤/搜索