<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>

          數(shù)據(jù)可視化 | 20行代碼玩轉(zhuǎn)象限圖!

          共 1936字,需瀏覽 4分鐘

           ·

          2020-09-06 07:25

          Python 的繪圖功能非常強(qiáng)大,如果能將已有的繪圖庫的各種復(fù)雜操作匯總在一個(gè)自己寫的函數(shù)甚至是庫/包中,并實(shí)現(xiàn)一行代碼就調(diào)用并實(shí)現(xiàn)復(fù)雜的繪圖功能,那就更是如虎添翼。


          今天,我們就來講講一學(xué)就會的象限圖。



          上圖學(xué)名叫波士頓矩陣分析圖,大白話四象限圖。這種圖經(jīng)常用于兩個(gè)維度的散點(diǎn)圖中,根據(jù)特定的分割線(均值,目標(biāo)值,實(shí)際值等)將數(shù)據(jù)分為四類,使人一目了然。


          常用的場景為分析兩個(gè)維度的變化比如:比較商品的庫存天數(shù)和庫存周轉(zhuǎn)率,充值人數(shù)和每付費(fèi)用戶平均收益,購物籃系數(shù)和購物籃數(shù)量等


          如何使用 Python 畫出此圖是本文的目標(biāo),事不宜遲,趕快開始!


          任何復(fù)雜的 Python 繪圖都不是一蹴而就的,而是先畫出基礎(chǔ)圖形,后在此基礎(chǔ)上按需添加元素并優(yōu)化而成。這里以一組城市經(jīng)濟(jì)數(shù)據(jù)為例來講解繪圖步驟



          ? ?基礎(chǔ)散點(diǎn)圖


          df?=?pd.read_csv('data.csv')df; df.plot(kind='scatter', x='經(jīng)濟(jì)總量水平', y='人均水平')



          簡潔又樸素的散點(diǎn)圖,僅需一行代碼。離期望成圖還差幾步


          • 為每個(gè)點(diǎn)添加對應(yīng)的城市名稱

          • 添加特定的分割線(均值,目標(biāo)值,實(shí)際值)

          • 背景添加網(wǎng)格

          • 一些其他的定制需求...




          ?? 圖像優(yōu)化


          成圖如下:


          從上圖可以看出:

          • 廣西,河北,福建三地的人均水平和經(jīng)濟(jì)總量水平都偏低

          • 上海的人均經(jīng)濟(jì)水平很高,但經(jīng)濟(jì)總量水平缺只是略優(yōu)于均值

          • 廣東的人均經(jīng)濟(jì)水平稍次于均值,但經(jīng)濟(jì)總量水平很高

          • 等等~


          當(dāng)然,如果我們通過添加數(shù)量更多的定制線也可以實(shí)現(xiàn)常用的九宮格圖

          《數(shù)據(jù)化管理》庫存天數(shù)與銷售數(shù)量分析

          最后總結(jié)一下,Python 的一些繪圖方法、參數(shù)看似瑣碎,但積累到一定程度后,便可以發(fā)現(xiàn)許多技巧都存在共通之處。小事情重復(fù)做也會成為大麻煩,所以高手都懂得分類處理。

          貫通了 3 個(gè)核心,我們才能省時(shí)省事,成為別人眼中的高手:

          • 大量重復(fù)的工作懂得批處理


          • 反復(fù)要做的固定操作固化成?" 模板 “,” 套路 "


          • 碰到異常情況,知道如何準(zhǔn)確高效的解決。



          所以我們可以將四象限圖的繪制方法封裝成自己的函數(shù)以供快捷調(diào)用,篇幅原因就不多展示了。

          上文核心代碼如下:
          import?matplotlib.pyplot?as?plt
          # 為每個(gè)點(diǎn)添加對應(yīng)的城市名稱plt.figure(figsize=(10, 8))# 基礎(chǔ)散點(diǎn)圖:這里需要單獨(dú)拆開 x,y 軸和希望配對的標(biāo)簽,為下面的輪子做準(zhǔn)備x, y = df['經(jīng)濟(jì)總量水平'], df['人均水平']label = df['area']plt.scatter(x, y)plt.xlabel('經(jīng)濟(jì)總量水平'); plt.ylabel('人均水平')
          # 對散點(diǎn)圖中的每一個(gè)點(diǎn)進(jìn)行文字標(biāo)注 ## 固定代碼,無需深究,拿來即用for a,b,l in zip(x,y,label): # zip 拉鏈函數(shù)將其配對組合 plt.text(a, b+0.1, '%s.' % l, ha='center', va='bottom', fontsize=14) # 0.1 向上輕微偏移 # 添加特定分割線 ## vlines: vertical 垂直于 x 軸的線,在變量'經(jīng)濟(jì)總量'的均值處開始畫, ## y 軸的范圍[1.5, 3]plt.vlines(x=df['經(jīng)濟(jì)總量水平'].mean(), ymin=-1.5, ymax=3, colors='red', linewidth=2)plt.hlines(y=df['人均水平'].mean(), xmin=-4, xmax=6, colors='red', linewidth=2)
          # 背景網(wǎng)格plt.grid(True)# 定制需求:隱去四周的邊框線條# sns.despine(trim=True, left=True, bottom=True)

          推薦閱讀

          (點(diǎn)擊標(biāo)題可跳轉(zhuǎn)閱讀)

          介紹一款分享真實(shí)互聯(lián)網(wǎng)薪資的小程序

          學(xué)習(xí)Python你必須了解的lenna小姐姐

          10行python代碼制作笑死人不償命的倒放gif


          轉(zhuǎn)了嗎
          ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ??
          ? ? ? ? ? ? ? ? ? ? ? ? ? ?贊了嗎
          在看嗎
          瀏覽 49
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <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>
                  多人无码 | 亚洲黄色在线视频观看 | 亚洲精品国产精品自产 | 一级爱ai高清免费在线视频 | 操逼豆花视频 |