日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

数据可视化matplotlib(一)---亚马逊销售飙升榜

發(fā)布時間:2023/12/29 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据可视化matplotlib(一)---亚马逊销售飙升榜 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

????????數(shù)據(jù)可視化是數(shù)據(jù)分析的重要任務之一。

? ? ? ? 之前有獲取到亞馬遜銷售飆升榜的數(shù)據(jù),但是排名只是按列表順序排序,銷售排名上升的幅度只有數(shù)字的變化,體現(xiàn)的不是很直觀。

????????所以使用python的matplotlib實現(xiàn)對數(shù)據(jù)的可視化,能直觀的看出來數(shù)據(jù)的對比和變化。

一、matplotlib

????????Matplotlib 是 Python 的繪圖庫,可以用來繪制各種靜態(tài),動態(tài),交互式的圖表。

python3 -m pip install -U matplotlib

? ? ? ? 安裝完成之后,寫一個簡單的小測試:

import matplotlib.pyplot as pltdata = [1,2,2,5,8,1,2] plt.plot(data) plt.show()

? ? ? ? ?先自定義一個list生成圖表,若配置正確的話就能生成如下簡單的線型圖:
?

?二、使用Dataframe生成柱狀圖

? ? ? ? 在pandas中有很多方法可以實現(xiàn)對Dataframe和Series的可視化。
? ? ? ? Dataframe和Series都有一個plot屬性繪制基本的圖形,但是默認情況下polt生成的都是折線圖。
? ? ? ? 所以我們需要用polt繪制不同圖標的其他方法,比如柱狀圖的polt.bar()方法可以繪制垂直的柱狀圖,plot.barh()用于繪制水平的柱狀圖。

dataframe = pd.DataFrame([1,2,2,5,8,1,2],index=["a","b","c","d","e","f","g"]) print(dataframe) dataframe.plot.bar() plt.show()

?????????默認情況下,在繪制柱狀圖時,Series和Dataframe的索引會成為x軸(bar())或者y(barh())軸的刻度。

三、Movers & Shakers數(shù)據(jù)可視化

? ? ? ? 結(jié)合上次的亞馬遜銷售飆升榜,來做一個電子區(qū)的熱銷榜銷售上升幅度的柱狀圖。

? ? ? ? 我這里使用的是ipidea的代理,因為亞馬遜在國內(nèi)還是無法正常訪問的,好的代理能幫助你更好的獲取數(shù)據(jù),高質(zhì)量低延遲,而且新用戶可以白嫖哦!
????????http://www.ipidea.net/?utm-source=csdn&utm-keyword=?wb

????????那個up箭頭就是銷售量漲幅。不知道為什么榜一居然沒有,取數(shù)據(jù)的時候就把他忽略掉。

testUrl = "https://www.amazon.com/gp/movers-and-shakers/electronics/ref=zg_bsms_nav_0" headers = {"authority":"www.amazon.com","accept":"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9","user-agent":f"{UserAgent}", } res = requests.get(testUrl, headers=headers, proxies=proxies,verify=False) content = res.content.decode("utf-8") sel = Selector(text=content) nodes = sel.css("#gridItemRoot") indexList = [] upgradeList = [] for node in nodes[1:]:itemName = node.css(".zg-grid-general-faceout a span div::text").extract_first()ranks = node.css(".aok-inline-block")upgrade = ranks.css(".zg-grid-pct-change::text").extract_first().replace("%","").replace(",","")indexList.append(itemName)upgradeList.append(int(upgrade))

? ? ? ? 獲取到商品名和商品銷售漲幅之后將數(shù)據(jù)存入兩個list中,一個作為圖標數(shù)據(jù),將商品名作為x軸的刻度。

dataframe = pd.DataFrame(upgradeList,index=indexList) dataframe.plot.bar() plt.show()

? ? ? ? 目前,最基礎的數(shù)據(jù)可視化就完成了。?
?

總結(jié)

以上是生活随笔為你收集整理的数据可视化matplotlib(一)---亚马逊销售飙升榜的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。