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

          厲害了,散點圖還能這么畫!

          共 2416字,需瀏覽 5分鐘

           ·

          2021-02-28 20:00


          大家好,歡迎來到 Crossin的編程教室 !

          數(shù)據(jù)可視化中,二維散點圖的應(yīng)用范圍很廣,比如用來觀測兩個變量之間的相關(guān)性、展示銷量的的走勢等等,這些是散點圖的常規(guī)用法。

          不過今天這篇文章想講的是,二維散點圖能夠展現(xiàn)的信息遠(yuǎn)不止兩個維度。Matplotlib進(jìn)階繪圖,帶你扒一扒散點圖都有哪些妙用。

          本文用的數(shù)據(jù)集是加州房產(chǎn)價格數(shù)據(jù)集,每個樣本代表一個街區(qū)。數(shù)據(jù)集中共有10個屬性,包含經(jīng)度、緯度、房屋年齡中位數(shù)、總房間數(shù)、總臥室數(shù)、人口數(shù)、家庭數(shù)、收入中位數(shù)、房屋價值中位數(shù)和該地區(qū)離大海的距離。

          首先,將經(jīng)度視為x,緯度作為y,繪制散點圖,我們可以得到這些街區(qū)的地理位置分布圖。

          import pandas as pd
          import matplotlib.pyplot as plt
          %matplotlib inline
          plt.rcParams['font.sans-serif'] = 'SimHei'
          plt.rcParams['axes.unicode_minus'] = False

          data = pd.read_csv('./data/housing.csv')

          fig,ax = plt.subplots(figsize=(9,6))
          ax.scatter(x='longitude',y='latitude',data=data)

          散點圖大致的勾勒出了加州的地理輪廓,一個點代表了一個街區(qū)。

          但這張圖反映不出街區(qū)之間的密集程度,原因在于,一個街區(qū)的面積相對于一個州的面積而言幾乎可以忽略不計,所以很多時候兩個街區(qū)在經(jīng)緯度上相差不大,在圖上的表現(xiàn)就是重疊成一個點。

          針對這個問題,可以設(shè)置alpha參數(shù),控制散點的透明度,設(shè)置了透明度之后,顏色越深的部分就代表了越多的散點在這里重疊,即該區(qū)域的街區(qū)密集程度更大,如下

          fig,ax = plt.subplots(figsize=(9,6))

          # alpha取值在0-1之間,具體取何值取決于對密集程度的定義,這里取0.3
          ax.scatter(x='longitude',y='latitude',data=data,alpha=0.3)

          所以通過alpha(透明度)的設(shè)置,在散點圖上非常直觀地展示了街區(qū)密集程度這一信息。

          接著,我們可以看看各個街區(qū)的人口分布情況,如何做呢?

          圖中一個點代表了一個街區(qū),所以需要對散點的樣式進(jìn)行設(shè)置,散點的可以設(shè)置的屬性有顏色,大小,形狀等。

          實際選擇哪種視實際情況(效果,研究目的)而定,這里選用大小來反映街區(qū)的人口數(shù)量,即設(shè)置參數(shù)s,將散點的大小和人口多少掛鉤。為了便于對比,將設(shè)置前后的圖放到了一起。

          fig,ax = plt.subplots(1,2,figsize=(20,6))

          ax[0].scatter(x='longitude',y='latitude',data=data,alpha=0.3)
          ax[0].set_title('設(shè)置前',size=16)
          ax[1].scatter(x='longitude',y='latitude',data=data,alpha=0.3,s=data['population']/100,label='population')
          ax[1].set_title('設(shè)置后',size=16)

          可以看到,對于加州北部(黃色框內(nèi))而言,不僅街區(qū)密度不大,而且街區(qū)內(nèi)的人也較少(散點較?。M瑫r,對于紅色框內(nèi)的區(qū)域,雖然街區(qū)密度較大,但人口密度明顯稀疏不少。

          最后,結(jié)合街區(qū)密集度和人口密集度,再看看各個街區(qū)的價格分布,這里將顏色和房價高低掛鉤,通過顏色的漸變來展現(xiàn)房價高低,顏色由藍(lán)到紅代表了價格由低到高,具體用到的參數(shù)為c。

          fig,ax = plt.subplots(figsize=(9,6))
          ax_plot = ax.scatter(x='longitude',y='latitude',alpha=0.4,s=data['population']/100,
                               c='median_house_value',cmap=plt.get_cmap('jet'),data=data)

          # 加上顏色棒
          fig.colorbar(ax_plot,ax=ax)

          通過對顏色的設(shè)定,整個圖看上去顏值高了很多,同時,也可以得到一些結(jié)論:

          • 房價比較高的區(qū)域集中于兩個中心,且都靠近海灣
          • 房價高的地方對應(yīng)的人口密集度也較高

          雖然這兩個數(shù)據(jù)分析的結(jié)論比較顯而易見,但這里主要想說的是,用散點圖也能夠展現(xiàn)出豐富的信息,在這個案例中,用alpha呈現(xiàn)了街區(qū)密集度,s呈現(xiàn)了人口密集度,c反映房價高低,再加上橫縱坐標(biāo)的經(jīng)緯度,一共反映了5個維度的信息。

          所以,二維散點圖還是很強(qiáng)大的對吧!只要掌握一些常用的參數(shù)設(shè)置,理清數(shù)據(jù)分析思路,你的散點圖便可以變得既富有信息量,還有高顏值。

          如果文章對你有幫助,歡迎轉(zhuǎn)發(fā)/點贊/收藏~


          作者:易執(zhí)
          來源:Python讀財


          _往期文章推薦_

          50個Matplotlib代碼,你也能畫出優(yōu)秀的圖表




          瀏覽 56
          點贊
          評論
          收藏
          分享

          手機(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>
                  一级二级麻豆视频 | 猫咪AV成人永久网站在线观看 | 国产成人无码精品色欲天香 | 亚洲综合色婷婷 | 久久久久久久久黄色 |