本文主要闡述如何使用python從excel讀取數據,並用matplotlib繪製成二維圖像。python
主要知識點爲:小程序
適合人羣:適合具備Python基礎的用戶,對於須要書寫實驗報告,學位論文,發表文章,作PPT報告的學員具備較大價值。app
打開Xfce終端,下載並安裝的相關依賴 。ide
$ sudo apt-get update $ sudo apt-get install python-dev $ sudo pip install numpy $ sudo apt-get install python-matplotlib $ sudo pip install xlrd $ sudo apt-get install python-sip $ sudo apt-get install libqt4-dev $ sudo apt-get install python-qt4 python-qt4-dev pyqt4-dev-tools qt4-dev-tools
遇到是否安裝的詢問時,輸入y,按回車鍵繼續安裝。函數
1.繪製一個簡單圖像,測試擴展包安裝是否正常。工具
安裝完成matplotlib後,運行一個小程序測試其是否正常。咱們來繪製一個很是簡單的正弦函數。學習
在學習過程當中有什麼不懂得能夠加個人 python學習資源qun,855-408-893 羣裏有不錯的學習視頻教程、開發工具與電子書籍。 與你分享python企業當下人才需求及怎麼從零基礎學習好python,和學習什麼內容 import numpy as np import matplotlib.pyplot as plt x = np.linspace(0, 10, 500) dashes = [10, 5, 100, 5] # 10 points on, 5 off, 100 on, 5 off fig, ax = plt.subplots() line1, = ax.plot(x, np.sin(x), '--', linewidth=2, label='Dashes set retroactively') line1.set_dashes(dashes) line2, = ax.plot(x, -1 * np.sin(x), dashes=[30, 5, 10, 5], label='Dashes set proactively') ax.legend(loc='lower right') plt.show()
若是一切正常,應該獲得以下顯示的圖片:開發工具
2 測試xlrd擴展包測試
從excel中讀取數據的過程比較簡單,首先從xlrd包導入open_workbook,而後打開excel文件,把每一個sheet裏的每一行每一列數據都讀取出來便可。很明顯,這是個循環過程。spa
from xlrd import open_workbook x_data1=[] y_data1=[] wb = open_workbook('phase_detector.xlsx') for s in wb.sheets(): print 'Sheet:',s.name for row in range(s.nrows): print 'the row is:',row values = [] for col in range(s.ncols): values.append(s.cell(row,col).value) print values x_data1.append(values[0]) y_data1.append(values[1])
若是安裝包沒有問題,這段代碼應該能打印出excel表中的數據內容。解釋一下 這段代碼:打開一個excel文件後,首先對文件內的sheet進行循環,這是最外層循環;在每一個sheet內,進行第二次循環,行循環;在每行內,進行列循環,這是第三層循環。在最內層列循環內,取出行列值,複製到新建的values列表內,很明顯,源數據有幾列,values列表就有幾個元素。咱們例子中的excel文件有兩列,分別對應「角度」和DC值。因此在列循環結束後,咱們將取得的數據保存到x_data1和y_data1這兩個列表中。
3 繪製圖像
從excel中讀取數據,而後繪製成圖像。具體程序以下:
#!/usr/bin/python #-*- coding: utf-8 -*- import matplotlib.pyplot as plt import xlrd from xlrd import open_workbook x_data=[] y_data=[] x_volte=[] temp=[] wb = open_workbook('my_data.xlsx') for s in wb.sheets(): print 'Sheet:',s.name for row in range(s.nrows): print 'the row is:',row values = [] for col in range(s.ncols): values.append(s.cell(row,col).value) print values x_data.append(values[0]) y_data.append(values[1]) plt.plot(x_data, y_data, 'bo-',label=u"Phase curve",linewidth=1) plt.title(u"TR14 phase detector") plt.legend() plt.xlabel(u"input-deg") plt.ylabel(u"output-V") plt.show() print 'over!'
程序簡單,顯示的效果以下:
作到這裏,一組數據的圖像已經完成。以爲文章還能夠的話不妨收藏起來慢慢看,有任何意見或者見解歡迎你們評論!