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