Python 寫excel檔案並插入散點圖
阿新 • • 發佈:2019-02-10
這兩天做小實驗,需要分析結果,當然需要些圖表。實驗的算例少說也有幾十個,一個個匯入excel,太煩了。幸好,本人是個程式設計師。
google了下,python寫excel檔案的方法不少,最後我選定了xlsxwriter這個庫,使用python,很容易就能完成工作。下面說下步驟,並附上程式碼。
一、安裝xlsxwriter
當然,python是一定要安裝的,我使用的是Python 2.7.8。
現在安裝xlsxwriter
git clone http://github.com/jmcnamara/XlsxWriter/ # clone 程式碼 cd XlsxWriter python setup.py install # 將xlsxwriter安裝到Python裡
二、新建xlsx檔案並新增worksheet
結果如下圖:import xlsxwriter workbook = xlsxwriter.Workbook('filename.xlsx') # 建立名為filename.xlsx的.xlsx檔案,<span style="color:#FF0000;">注意,這個庫每次開啟的檔案都會被清空內容</span> worksheet1 = workbook.add_worksheet() # 建立worksheet,括號裡可傳worksheet的名字,如workbook.add_worksheet('abc') worksheet2 = workbook.add_worksheet() worksheet1.write('A1', 123) # 在excel檔案的$A$1位置寫入數字123 workbook.close()
三、給.xlsx檔案新增資料並繪圖
先給檔案加內容:
新增散點圖:import xlsxwriter workbook = xlsxwriter.Workbook('chart_scatter.xlsx') worksheet = workbook.add_worksheet() # 給出內容標題 headings = ['Number', 'Batch 1', 'Batch 2'] data = [ [2, 3, 4, 5, 6, 7], [10, 40, 50, 20, 10, 50], [30, 60, 70, 50, 40, 30], ] worksheet.write_row('A1', headings, bold) # 從$A$1位置開始橫向把內容標題寫入 worksheet.write_column('A2', data[0]) # 從$A$2位置開始縱向把內容寫入 worksheet.write_column('B2', data[1]) worksheet.write_column('C2', data[2])
# 括號中的series是這個表所用的所有資訊,包括顯示資料在excel檔案中位置,圖表的格式等,說見文末的官網連結。
# 這個series包括以下向個內容,
# name為series名。在拆線圖中就是這條拆線的名字
# categories為附屬資訊,本處做x座標使用,但不是每種表都需要這個引數
# values指出顯示資料位置,是series中唯一強制要求給出的內容
chart1.add_series(
{ 'name': '=Sheet1!$B$1'
, 'categories': '=Sheet1!$A$2:$A$7'
, 'values': '=Sheet1!$B$2:$B$7',})
# 這和上一個相似,不過使用索引來指示位置
chart1.add_series(
{ 'name': ['Sheet1', 0, 2]
, 'categories': ['Sheet1', 1, 0, 6, 0]
, 'values': ['Sheet1', 1, 2, 6, 2],})
# 為表、x軸、y軸設定名字
chart1.set_title ({'name': 'Results of sample analysis'})
chart1.set_x_axis({'name': 'Test number'})
chart1.set_y_axis({'name': 'Sample length (mm)'})# 在給定偏移位置插入圖表
chartworksheet.insert_chart('D2', chart1, {'x_offset': 25, 'y_offset': 10}) # D2是圖表中的座標
效果如下:
xlsxwriter官網:http://xlsxwriter.readthedocs.org/en/latest/contents.html
char類說明:http://xlsxwriter.readthedocs.org/en/latest/chart.html
散點圖例子:http://xlsxwriter.readthedocs.org/en/latest/example_chart_scatter.html