更新時間:2019年10月09日16時03分 來源:傳智播客 瀏覽次數:
Python爬蟲數據如何寫入Execl文件并生成圖表?
需求:為了做測試或者對爬蟲程序爬取數據進行分析匯總,我們時常會將數據生成報表,但是如果我們想將報表生成在Excel中,這時候就可以借助xlsxwriter第三方包來生成圖表。
分析:為生成excel準備多維數組類型的數據->數據插入到Excel中->對數據按系列劃分生成圖表?!就扑]了解:python+人工智能課程】
第一步:準備數據:
使用爬蟲爬取網絡上關于熱門崗位的數據并生成多維數組類型,如下:
data = [
["IOS崗位數", "Android崗位數", "Python崗位數", "物聯網崗位數", "Go與區塊鏈崗位數"],
[2000, 4000, 60000, 8000, 1000],
]
第二步:將數據插入Excel中
首先要創建一個Excel文件,然后在Excel中創建一個sheet表單頁,最后將數據插入到sheet表單頁中
1、創建一個Excel對象
workbook = xlsxwriter.Workbook(“Excel名字.xlsx”)
2、基于Excel對象創建一個sheet表單對象
worksheet = workbook.add_worksheet(name=“sheet表單的名字,不填寫就默認為sheet1")
3、將數據寫入sheet表單頁worksheet
worksheet.write_row( row, col, data, cell_format=None)
worksheet.write_column(row, col, data, cell_format=None)
3.1、可以用A1表示第一行第一列的那個單元格,這個時候后面的data可以是個數組,直接插入一行數據
worksheet.write_column("A1", 一列數據, 樣式(非必填項))
worksheet.write_row("A1", 一行數據, 樣式(非必填項))
具體代碼如下:
# Write some data to add to plot on the chart.
data = [
["IOS崗位數", "Android崗位數", "Python崗位數", "物聯網崗位數", "Go與區塊鏈崗位數"],
[2000, 4000, 60000, 8000, 1000],
]
worksheet.write_column('A1', data[0])
worksheet.write_column('B1', data[1])
第三步:生成圖表
1.通過Workbook add_chart()方法創建圖表對象,其中指定了圖表類型:
chart = workbook.add_chart({'type': 'column'})
通過type定義圖標的類型,比如是柱形圖還是餅圖
支持的圖表類型是:
area:創建區域(實線)樣式圖表。
bar:創建條形樣式(轉置直方圖)圖表。
column:創建列樣式(直方圖)圖表。
line:創建線型圖表。
pie:創建餅圖樣式圖表。
doughnut:創建圓環樣式圖表。
scatter:創建散點圖樣式圖表。
stock:創建庫存樣式圖表。
radar:創建雷達樣式圖表。
代碼如下:
# Create a new Chart object.
chart = workbook.add_chart({'type': 'column'})
2、添加圖標要統計的數據,同一個報表可以添加多個系列
代碼如下:
chart.add_series({
'categories': '=Sheet1!$A$1:$A$5',
'values': '=Sheet1!$B$1:$B$5',
'line': {'color': 'red'},
'name': '各崗位數匯總',
})
categories:這將設置圖表類別標簽。該類別與X軸大致相同。在大多數圖表類型中,該categories 屬性是可選的,圖表將僅假設一個順序系列 1..n。
values:這是系列中最重要的屬性,是每個圖表對象的唯一必需選項。此選項將圖表與其顯示的工作表數據相鏈接??梢允褂蒙厦娴谝粋€示例中所示的公式或使用第二個示例中所示的值列表來設置數據范圍。
line:設置系列線型的屬性,如顏色和寬度。請參見圖表格式:行。
name:設置系列的名稱。名稱顯示在公式欄中。對于非餅圖/圓環圖,它也會顯示在圖例中。name屬性是可選的,如果未提供,則默認為。名稱也可以是公式,例如,包含工作表名稱,行和列的列表。Series 1..n=Sheet1!$A$1['Sheet1', 0, 0]
如下圖所示:
3、給圖表定義名字和樣式
代碼如下:
chart.set_title({'name': '各崗位數匯總_圖表'})
chart.set_style(10)
4、將圖表插入到Excel中
代碼如下:
# Insert the chart into the worksheet.
worksheet.insert_chart('A7', chart)
5、關閉保存修改
代碼如下:
workbook.close()