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

全國咨詢/投訴熱線:400-618-4000

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

更新時間:2019年10月09日16時03分 來源:傳智播客 瀏覽次數(shù):

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

需求:為了做測試或者對爬蟲程序爬取數(shù)據(jù)進行分析匯總,我們時常會將數(shù)據(jù)生成報表,但是如果我們想將報表生成在Excel中,這時候就可以借助xlsxwriter第三方包來生成圖表。

分析:為生成excel準(zhǔn)備多維數(shù)組類型的數(shù)據(jù)->數(shù)據(jù)插入到Excel中->對數(shù)據(jù)按系列劃分生成圖表。【推薦了解:python+人工智能課程

第一步:準(zhǔn)備數(shù)據(jù):

使用爬蟲爬取網(wǎng)絡(luò)上關(guān)于熱門崗位的數(shù)據(jù)并生成多維數(shù)組類型,如下:

data = [

    ["IOS崗位數(shù)", "Android崗位數(shù)", "Python崗位數(shù)", "物聯(lián)網(wǎng)崗位數(shù)", "Go與區(qū)塊鏈崗位數(shù)"],

    [2000, 4000, 60000, 8000, 1000],

]

第二步:將數(shù)據(jù)插入Excel中

首先要創(chuàng)建一個Excel文件,然后在Excel中創(chuàng)建一個sheet表單頁,最后將數(shù)據(jù)插入到sheet表單頁中

1、創(chuàng)建一個Excel對象

workbook = xlsxwriter.Workbook(“Excel名字.xlsx”)

2、基于Excel對象創(chuàng)建一個sheet表單對象

worksheet = workbook.add_worksheet(name=“sheet表單的名字,不填寫就默認為sheet1")

3、將數(shù)據(jù)寫入sheet表單頁worksheet

worksheet.write_row( row, col, data, cell_format=None)

worksheet.write_column(row, col, data, cell_format=None)

3.1、可以用A1表示第一行第一列的那個單元格,這個時候后面的data可以是個數(shù)組,直接插入一行數(shù)據(jù)

worksheet.write_column("A1", 一列數(shù)據(jù), 樣式(非必填項))

worksheet.write_row("A1", 一行數(shù)據(jù), 樣式(非必填項))

具體代碼如下:

# 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.通過Workbook add_chart()方法創(chuàng)建圖表對象,其中指定了圖表類型:

    chart = workbook.add_chart({'type': 'column'})

通過type定義圖標(biāo)的類型,比如是柱形圖還是餅圖

支持的圖表類型是:

    area:創(chuàng)建區(qū)域(實線)樣式圖表。

    bar:創(chuàng)建條形樣式(轉(zhuǎn)置直方圖)圖表。

    column:創(chuàng)建列樣式(直方圖)圖表。

    line:創(chuàng)建線型圖表。

    pie:創(chuàng)建餅圖樣式圖表。

    doughnut:創(chuàng)建圓環(huán)樣式圖表。

    scatter:創(chuàng)建散點圖樣式圖表。

    stock:創(chuàng)建庫存樣式圖表。

    radar:創(chuàng)建雷達樣式圖表。

代碼如下:

    # Create a new Chart object.

    chart = workbook.add_chart({'type': 'column'})

2、添加圖標(biāo)要統(tǒng)計的數(shù)據(jù),同一個報表可以添加多個系列

代碼如下:

chart.add_series({

    'categories': '=Sheet1!$A$1:$A$5',

    'values': '=Sheet1!$B$1:$B$5',

    'line': {'color': 'red'},

    'name': '各崗位數(shù)匯總',

})

    categories:這將設(shè)置圖表類別標(biāo)簽。該類別與X軸大致相同。在大多數(shù)圖表類型中,該categories 屬性是可選的,圖表將僅假設(shè)一個順序系列 1..n。

    values:這是系列中最重要的屬性,是每個圖表對象的唯一必需選項。此選項將圖表與其顯示的工作表數(shù)據(jù)相鏈接??梢允褂蒙厦娴谝粋€示例中所示的公式或使用第二個示例中所示的值列表來設(shè)置數(shù)據(jù)范圍。

    line:設(shè)置系列線型的屬性,如顏色和寬度。請參見圖表格式:行。

    name:設(shè)置系列的名稱。名稱顯示在公式欄中。對于非餅圖/圓環(huán)圖,它也會顯示在圖例中。name屬性是可選的,如果未提供,則默認為。名稱也可以是公式,例如,包含工作表名稱,行和列的列表。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 分享到:
和我們在線交談!