<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          手把手教你用Pyecharts庫對淘寶數(shù)據(jù)進(jìn)行可視化展示

          共 7608字,需瀏覽 16分鐘

           ·

          2021-08-30 08:50

          點擊上方“Python爬蟲與數(shù)據(jù)挖掘”,進(jìn)行關(guān)注

          回復(fù)“書籍”即可獲贈Python從入門到進(jìn)階共10本電子書

          博學(xué)而約取,厚積而薄發(fā)。

          大家好,我是Python進(jìn)階者。

          一、前言

              大家好,我是Python進(jìn)階者。上一篇文章給大家講到了淘寶數(shù)據(jù)的預(yù)處理和詞頻處理,沒有來得及看的小伙伴,記得去學(xué)習(xí)了下了,詳情戳這里:手把手教你用Pandas庫對淘寶原始數(shù)據(jù)進(jìn)行數(shù)據(jù)處理和分詞處理。這篇文章緊接著上一篇文章處理得到的數(shù)據(jù)進(jìn)行可視化處理,一起來看看吧!


          二、可視化

          可視化部分,我們采用Pyecharts庫來進(jìn)行完成,這個庫作圖十分的炫酷,而且可以交互,十分帶感,強(qiáng)烈推薦。關(guān)于這部分,小編以生成配料圖表和生成保質(zhì)期可視化圖表為例來進(jìn)行展開。

          1、生成配料餅圖

          針對配料數(shù)據(jù),我們使用一個餅圖去進(jìn)行展示,這樣顯得更加高大上一些,直接上代碼。

          # 生成配料圖表def get_ingredients_html(df):    # 詞表分詞    names = df.配料表.apply(jieba.lcut).explode()    df1 = names[names.apply(len)>1].value_counts()    # 寫入分詞后的結(jié)果    with pd.ExcelWriter("淘寶商品配料數(shù)據(jù).xlsx") as writer:        df1.to_excel(writer, sheet_name="配料")    fpath = r'C:\Users\pdcfi\Desktop\淘寶數(shù)據(jù)分析\淘寶商品配料數(shù)據(jù).xlsx'    # 讀取數(shù)據(jù) 提取列    df1 = pd.read_excel(fpath, header=None, skiprows=1, sheet_name='配料', names=['sx', 'sl'])    a = df1['sx'].to_list()[:10]    b = df1['sl'].to_list()[:10]
          from pyecharts.charts import Pie from pyecharts import options as opts # 繪制可視化圖表 pie = ( Pie().add('', [list(z) for z in zip(a, b)], radius=["20%", "60%"], # 半徑長度 rosetype="radius" # 扇區(qū)圓心角展現(xiàn)數(shù)據(jù)的百分比,半徑展現(xiàn)數(shù)據(jù)的大小 ) .set_global_opts(title_opts=opts.TitleOpts(title="淘寶商品數(shù)據(jù)配料統(tǒng)計", subtitle="8.19")) .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: go7utgvlrp%")) # 數(shù)字項名稱和百分比
          ) pie.render('淘寶商品數(shù)據(jù)配料統(tǒng)計.html')
              在Pycharm里邊運(yùn)行代碼之后,我們將會得到一個淘寶商品數(shù)據(jù)配料統(tǒng)計.html文件,雙擊打開該HTML文件,在瀏覽器里邊可以看到效果圖,如下圖所示。

              是不是感覺一下子就高大上了呢?而且動動鼠標(biāo),你還可以進(jìn)行交互,是動態(tài)圖來著,十分好玩。

          2、生成保質(zhì)期可視化餅圖

              針對保質(zhì)期數(shù)據(jù),我們也先使用一個餅圖去進(jìn)行展示,直接上代碼,其實你會發(fā)現(xiàn)和上面那個配料圖表大同小異。

          """生成保質(zhì)期可視化圖表"""def get_date_html(df):    # 詞表分詞    names = df.保質(zhì)期.apply(jieba.lcut).explode()    df1 = names[names.apply(len) > 1].value_counts()    # 寫入分詞后的結(jié)果    with pd.ExcelWriter("淘寶商品保質(zhì)期數(shù)據(jù).xlsx") as writer:        df1.to_excel(writer, sheet_name="保質(zhì)期")    fpath = r'C:\Users\pdcfi\Desktop\淘寶數(shù)據(jù)分析\淘寶商品保質(zhì)期數(shù)據(jù).xlsx'    # 讀取數(shù)據(jù) 提取列    df1 = pd.read_excel(fpath, header=None, skiprows=1, names=['bzq', 'rq'])    a = df1['bzq'].to_list()[:10]    b = df1['rq'].to_list()[:10]    from pyecharts.charts import Pie    from pyecharts import options as opts    # 繪制可視化圖表    pie = (        Pie()            .add('', [list(z) for z in zip(a, b)],                 radius=["20%", "60%"],  # 半徑長度                 rosetype="radius"  # 扇區(qū)圓心角展現(xiàn)數(shù)據(jù)的百分比,半徑展現(xiàn)數(shù)據(jù)的大小                 )            .set_global_opts(title_opts=opts.TitleOpts(title="淘寶商品保質(zhì)期可視化圖表", subtitle="8.19"))            .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: go7utgvlrp%"))  # 數(shù)字項名稱和百分比
          ) pie.render('淘寶商品保質(zhì)期統(tǒng)計.html')
              在Pycharm里邊運(yùn)行代碼之后,我們將會得到一個淘寶商品保質(zhì)期統(tǒng)計.html文件,雙擊打開該HTML文件,在瀏覽器里邊可以看到效果圖,如下圖所示。

              相信有小伙伴肯定感覺哪里不對,一個保質(zhì)期的可視化,做成這種餅圖似乎太丑了吧?嗯,的確是丑爆了,所以程序大佬把保質(zhì)期這個圖轉(zhuǎn)為了柱狀圖,這樣看上去就高大上很多了。

          3、生成保質(zhì)期可視化柱狀圖

              其實數(shù)據(jù)都是一樣的,只不過呈現(xiàn)方式不同,直接上代碼。

          """生成保質(zhì)期可視化圖表"""def get_date_html(df):    # 詞表分詞    names = df.保質(zhì)期.apply(jieba.lcut).explode()    df1 = names[names.apply(len) > 1].value_counts()    # 寫入分詞后的結(jié)果    with pd.ExcelWriter("淘寶數(shù)據(jù).xlsx") as writer:        df1.to_excel(writer, sheet_name="保質(zhì)期")    fpath = r'C:\Users\dell\Desktop\崔佬\(zhòng)數(shù)據(jù)分析綜合實戰(zhàn)\淘寶數(shù)據(jù).xlsx'    # 讀取數(shù)據(jù) 提取列    df1 = pd.read_excel(fpath, header=None, skiprows=1, names=['bzq', 'rq'])    a = df1['bzq'].to_list()[:50]    b = df1['rq'].to_list()[:50]
          bar = ( Bar(init_opts=opts.InitOpts(theme=ThemeType.CHALK)) .add_xaxis(a) .add_yaxis("保質(zhì)期(天數(shù))",b) .set_global_opts( title_opts=opts.TitleOpts(title="Bar-DataZoom(slider-保質(zhì)期)"), datazoom_opts=opts.DataZoomOpts(), )
          ) return bar
              這么處理之后,我們就會得到一個柱狀圖了,如下圖所示。

              這把看上去,是不是覺得清晰很多了呢?

              不過呢,程序大佬還覺得不夠,想把這兩張圖放到一起,這應(yīng)該怎么辦呢?

          4、合并餅圖和柱狀圖到一個HTML文件

              其實這個也并不難,只需要將生成兩個圖的函數(shù)放到一個布局類里邊就可以完成了,直接上代碼。

          def page_draggable_layout(df):    page = Page(layout=Page.DraggablePageLayout)    page.add(        get_ingredients_html(df),        get_date_html(df)    )    page.render("page_draggable_layout.html")
              如果你想在一個HTML文件里邊加入更多的圖,只需要繼續(xù)在add()函數(shù)里面進(jìn)行添加生成可視化圖的函數(shù)即可。話不多說,直接上效果圖。

              從上圖我們可以看到配料餅圖和保質(zhì)期柱狀圖都同時在同一個HTML文件出現(xiàn)了,而且也是可以進(jìn)行點擊交互的噢!我們還可以收到拖拽,讓圖表移動,如下圖所示,分為左右圖進(jìn)行展示。

              你以為到這里就結(jié)束了?其實并沒有,程序大佬還想玩點更加高大上的,他想把table表一并顯示出來,這樣顯得更加飽滿一些。那么table表又如何來進(jìn)行顯示呢?

          5、table表加持

              其實在這里,程序大佬卡了一下,他在群里問,基于他目前的數(shù)據(jù),像下圖這樣的df數(shù)據(jù)如何進(jìn)行展示出來。

              而且,他自己在不斷的嘗試中,始終報錯,一時間丈二和尚摸不著頭腦,不知如何是好。

              不過此時小小明大佬,又遞來了橄欖枝,人狠話不多,直接丟了兩行代碼,讓人拍手叫絕。

              然后程序大佬,拿到Pycharm中一跑,啪,成了,真是拍案叫絕,小小明yyds!那么呈現(xiàn)的效果圖是下面這樣的。

              這樣看上去還稍微不太好看,拖拽下,調(diào)整下格式看看,如下圖所示。

              但是這樣一看,確實高大上了一些,不過還是達(dá)不到程序大佬心里的預(yù)期,于是乎他繼續(xù)折騰。

          6、調(diào)整圖像背景色

              現(xiàn)在呢,程序大佬又想要加點背景色,這樣顯得高大上一些,代碼如下。

          # 繪制可視化圖表pie = (    Pie(init_opts=opts.InitOpts(theme=ThemeType.CHALK))        .add('', [list(z) for z in zip(a, b)],             radius=["20%", "60%"],  # 半徑長度             rosetype="radius"  # 扇區(qū)圓心角展現(xiàn)數(shù)據(jù)的百分比,半徑展現(xiàn)數(shù)據(jù)的大小             )        .set_global_opts(title_opts=opts.TitleOpts(title="配料統(tǒng)計", subtitle="8.19"))        .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: go7utgvlrp%"))  # 數(shù)字項名稱和百分比
          )return pie
          其實核心的那句代碼下面這個,引了一個主題:
          init_opts=opts.InitOpts(theme=ThemeType.CHALK)

              得到的效果圖如上圖所示了。

          7、添加漏斗圖

              這里是以數(shù)據(jù)里邊的”食品添加“列來做實例的,代碼如下所示。

          def get_sptj_data(df):    # 詞表分詞    names = df.食品添加劑.apply(jieba.lcut).explode()    df1 = names[names.apply(len) > 1].value_counts()    # 寫入分詞后的結(jié)果    with pd.ExcelWriter("淘寶數(shù)據(jù).xlsx") as writer:        df1.to_excel(writer, sheet_name="食品添加劑")    fpath = r'C:\Users\dell\Desktop\崔佬\(zhòng)數(shù)據(jù)分析綜合實戰(zhàn)\淘寶數(shù)據(jù).xlsx'    # 讀取數(shù)據(jù) 提取列    df1 = pd.read_excel(fpath, header=None, skiprows=1, names=['sptj', 'sj'])    a = df1['sptj'].to_list()[:10]    b = df1['sj'].to_list()[:10]    c = (        Funnel(init_opts=opts.InitOpts(theme=ThemeType.CHALK))            .add(            "商品",            [list(z) for z in zip(a, b)],            label_opts=opts.LabelOpts(position="inside"),        )            .set_global_opts(title_opts=opts.TitleOpts(title="Funnel-Label(food_add)"))    )    return c

          得到的效果圖如下圖所示。

              寫到這里,基本上快接近尾聲了,不過程序大佬為了感謝小小明大佬,后來又補(bǔ)充了一個極化裝逼圖來贊揚(yáng)小小明。

          8、極化圖

              直接上代碼,程序大佬取的這個zb函數(shù),就是裝13的意思,取的太沒有水平了。

          def zb_data():    data = [(i, random.randint(1, 100)) for i in range(10)]    c = (        Polar()        .add(            "",            data,            type_="effectScatter",            effect_opts=opts.EffectOpts(scale=10, period=5),            label_opts=opts.LabelOpts(is_show=False),        )        .set_global_opts(title_opts=opts.TitleOpts(title="Polar-沒啥用,用來裝逼,小小明yyds"))
          ) return c

          看上去確實很高大上呢。


          三、總結(jié)

              大家好,我是Python進(jìn)階者。本文基于一份雜亂的淘寶原始數(shù)據(jù),利用正則表達(dá)式re庫和Pandas數(shù)據(jù)處理對數(shù)據(jù)進(jìn)行清洗,然后通過stop_word停用詞對得到的文本進(jìn)行分詞處理,得到較為”干凈“的數(shù)據(jù),之后利用傳統(tǒng)方法和Pandas優(yōu)化處理兩種方式對數(shù)據(jù)進(jìn)行詞頻統(tǒng)計,針對得到的數(shù)據(jù),利用Pyecharts庫,進(jìn)行多重可視化處理,包括但不限于餅圖、柱狀圖、Table表、漏斗圖、極化圖等,通過一系列的改進(jìn)和優(yōu)化,一步步達(dá)到想要的效果,可以說是干貨滿滿,實操性強(qiáng),親測有效。

              最后非常感謝程序大佬和小小明大佬在期間不斷提供的代碼,也感謝我自己花時間和心思把這些看似雜亂的消息整理成文,分享給大家學(xué)習(xí)。有需要本文中完整代碼文件的小伙伴,可以在后臺直接回復(fù)關(guān)鍵詞”程序和小小明大佬“即可獲取。

              我的這個Python交流群已經(jīng)300多人了,有需要加入該群的小伙伴可以加我好友,一起學(xué)習(xí),共同進(jìn)步。

          ------------------- End -------------------

          往期精彩文章推薦:

          歡迎大家點贊,留言,轉(zhuǎn)發(fā),轉(zhuǎn)載,感謝大家的相伴與支持

          想加入Python學(xué)習(xí)群請在后臺回復(fù)【入群

          萬水千山總是情,點個【在看】行不行

          /今日留言主題/

          隨便說一兩句吧~~

          瀏覽 36
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧美成人版H性爽997777 | 熟女色色 | 亚洲色婷| 日本午夜精品 | 精品产在线播放内射 |