Python實用技巧:從Excel讀取數據並繪製成圖像

本文主要闡述如何使用python從excel讀取數據,並用matplotlib繪製成二維圖像。

主要知識點爲:

  • 使用xlrd擴展包讀取excel數據
  • 使用matplotlib繪製二維圖像
  • 美化圖像,添加標註,註釋,顯示Latex風格公式,座標點處透明化處理等技巧

適合人羣:適合具有Python基礎的用戶,對於需要書寫實驗報告,學位論文,發表文章,做PPT報告的學員具有較大價值。

Python實用技巧:從Excel讀取數據並繪製成圖像

開發準備

打開Xfce終端,下載並安裝的相關依賴 。

$ 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()

如果一切正常,應該得到如下顯示的圖片:

Python實用技巧:從Excel讀取數據並繪製成圖像

2 測試xlrd擴展包

從excel中讀取數據的過程比較簡單,首先從xlrd包導入open_workbook,然後打開excel文件,把每個sheet裏的每一行每一列數據都讀取出來即可。很明顯,這是個循環過程。

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這兩個列表中。

Python實用技巧:從Excel讀取數據並繪製成圖像

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!'

程序簡單,顯示的效果如下:

Python實用技巧:從Excel讀取數據並繪製成圖像

做到這裏,一組數據的圖像已經完成。覺得文章還可以的話不妨收藏起來慢慢看,有任何意見或者看法歡迎大家評論!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章