教育行業(yè)A股IPO第一股(股票代碼 003032)

全國(guó)咨詢/投訴熱線:400-618-4000

Python爬蟲(chóng)數(shù)據(jù)如何寫(xiě)入Execl文件并生成圖表?

更新時(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]

如下圖所示:

python數(shù)據(jù)生成圖表


3、給圖表定義名字和樣式

代碼如下:

    chart.set_title({'name': '各崗位數(shù)匯總_圖表'})

    chart.set_style(10)

python數(shù)據(jù)生成圖表2


4、將圖表插入到Excel中

代碼如下:

    # Insert the chart into the worksheet.

    worksheet.insert_chart('A7', chart)

python數(shù)據(jù)生成圖表3

5、關(guān)閉保存修改

代碼如下:

    workbook.close()

0 分享到:
和我們?cè)诰€交談!