使用matplotlib繪製圖表
我們先來看什麼是Figure和Axes物件。在matplotlib中,整個影象為一個Figure物件。在Figure物件中可以包含一個,或者多個Axes物件。每個Axes物件都是一個擁有自己座標系統的繪圖區域。其邏輯關係如下:
以下整個影象是fig物件。我們的繪圖中只有一個座標系區域,也就是ax。此外還有以下物件。(括號中表示物件的基本型別)
Title為標題;
Axis為座標軸;
Label為座標軸標註;
Tick為刻度線;
Tick Label為刻度註釋。
各個物件之間有下面的物件隸屬關係:
(yaxis同樣有tick, label和tick label,沒有畫出)
儘管data是資料繪圖的關鍵部分,也就是資料本身的圖形化顯示,但是必須和xaxis, yaxis, title一起,才能真正構成一個繪圖區域axes。一個單純的,無法讀出刻度的
座標
座標是計算機繪圖的基礎。計算機螢幕是由一個個畫素點構成的。想要在螢幕上顯示影象,計算機必須告訴螢幕每個畫素點上顯示什麼。所以,最貼近硬體的座標體系是以畫素為單位的座標體系。我們可以通過具體說明畫素位置來標明顯示器上的某一點。這叫做顯示座標
然而,畫素座標不容易被納入繪圖邏輯。相同的程式,在不同的顯示器上就要調整畫素值,以保證影象不變形。所以一般情況下,還會有影象座標和資料座標。
影象座標將一張圖的左下角視為原點,將影象的x方向和y方向總長度都看做1。x方向的0.2就是指20%的影象在x方向的總長,y方向0.8的長度指80%的y方向總長。(0.5, 0.5)是影象的中點,(1, 1)指影象的右上角。比如下面的程式,我們在使用add_axes時,傳遞的引數中,前兩個元素為axes的左下角在fig的影象座標上的位置,後兩個元素指axes在fig的影象座標上x方向和y方向的長度。fig的影象座標稱為Figure座標
例程1:
#!/usr/bin/env python
import matplotlib.pyplot as plt
plt.plot([10, 20, 30])
plt.xlabel('tiems')
plt.ylabel('numbers')
plt.show()
例程二:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt
t = np.arange(0.0, 1.01, 0.01)
s = np.sin(2*2*np.pi*t)
plt.fill(t, s*np.exp(-5*t), 'r')
plt.grid(True)
#儲存為PDF格式,也可儲存為PNG等圖形格式
plt.savefig('D:\\test.pdf')
plt.show()
例程三:
import numpy as np
import matplotlib.pyplot as plt
x = [4,5,5,7,8]
t1 = [1,2,4,4,6]
t2 = [1,2,3,4,5]
plt.figure(1)
plt.plot(t1,'k')
plt.scatter(x,t2,s=2,alpha=1)
plt.show()
例程四:
import numpy as np
import matplotlib.pyplot as plt
x = [1,2,3,4,5]
t1 = [1,2,3,4,5]
t2 = [1,4,6,8,10]
t3 = [1,8,9,10,20]
plt.figure(1)
#add line
plt.plot(t1,'r')
#add circle
plt.plot(t2,'o')
#add dian
plt.scatter(x,t2,s=2,alpha=1)
plt.xlabel('date(2000+)')
plt.ylabel('house prices')
plt.title('just testing for line and pot')
- title : 設定圖表的標題
- ylim : 設定Y軸的範圍
- legend : 顯示圖示最後呼叫plt.show()顯示出我們建立的所有繪圖物件。
import numpy as np
import pylab as pl
x = [1,2, 3,4, 5]# Make an array of x values
y = [1,4, 9,16, 25]# Make an array of y valuesfor each x value
pl.plot(x, y)# use pylab to plot x and y
pl.show()# show the plot on the screen
參考文獻:
http://www.cnblogs.com/vamei/archive/2013/01/30/2879700.html
http://blog.csdn.net/dyx1024/article/details/7296748
http://www.2cto.com/kf/201407/317115.html
http://www.tuicool.com/articles/7zYNZfI
http://www.it165.net/pro/html/201406/15941.html