久久精品精选,精品九九视频,www久久只有这里有精品,亚洲熟女乱色综合一区
    分享

    Python數(shù)據(jù)可視化的10種技能

     昵稱16619343 2019-01-19

    今天我來給你講講Python的可視化技術(shù)。

    如果你想要用Python進行數(shù)據(jù)分析,就需要在項目初期開始進行探索性的數(shù)據(jù)分析,這樣方便你對數(shù)據(jù)有一定的了解。其中最直觀的就是采用數(shù)據(jù)可視化技術(shù),這樣,數(shù)據(jù)不僅一目了然,而且更容易被解讀。同樣在數(shù)據(jù)分析得到結(jié)果之后,我們還需要用到可視化技術(shù),把最終的結(jié)果呈現(xiàn)出來。

    可視化視圖都有哪些?

    按照數(shù)據(jù)之間的關(guān)系,我們可以把可視化視圖劃分為4類,它們分別是比較、聯(lián)系、構(gòu)成和分布。我來簡單介紹下這四種關(guān)系的特點:

    比較:比較數(shù)據(jù)間各類別的關(guān)系,或者是它們隨著時間的變化趨勢,比如折線圖;

    聯(lián)系:查看兩個或兩個以上變量之間的關(guān)系,比如散點圖

    構(gòu)成:每個部分占整體的百分比,或者是隨著時間的百分比變化,比如餅圖;

    分布:關(guān)注單個變量,或者多個變量的分布情況,比如直方圖。

    同樣,按照變量的個數(shù),我們可以把可視化視圖劃分為單變量分析和多變量分析。

    • 單變量分析指的是一次只關(guān)注一個變量。比如我們只關(guān)注“身高”這個變量,來看身高的取值分布,而暫時忽略其他變量。
    • 多變量分析可以讓你在一張圖上可以查看兩個以上變量的關(guān)系。比如“身高”和“年齡”,你可以理解是同一個人的兩個參數(shù),這樣在同一張圖中可以看到每個人的“身高”和“年齡”的取值,從而分析出來這兩個變量之間是否存在某種聯(lián)系。

    可視化的視圖可以說是分門別類,多種多樣,今天我主要介紹常用的10種視圖,包括了散點圖、折線圖、直方圖、條形圖、箱線圖、餅圖、熱力圖、蜘蛛圖、二元變量分布、成對關(guān)系。

    散點圖

    散點圖的英文叫做scatter plot,它將兩個變量的值顯示在二維坐標中,非常適合展示兩個變量之間的關(guān)系。當然,除了二維的散點圖,我們還有三維的散點圖。

    我在上一講中給你簡單介紹了下Matplotlib這個工具,在Matplotlib中,我們經(jīng)常會用到pyplot這個工具包,它包括了很多繪圖函數(shù),類似Matlab的繪圖框架。在使用前你需要進行引用:

    import matplotlib.pyplot as plt

    在工具包引用后,畫散點圖,需要使用plt.scatter(x, y, marker=None)函數(shù)。x、y 是坐標,marker代表了標記的符號。比如“x”、“>”或者“o”。選擇不同的marker,呈現(xiàn)出來的符號樣式也會不同,你可以自己試一下。

    下面三張圖分別對應(yīng)“x”“>”和“o”。

    除了Matplotlib外,你也可以使用Seaborn進行散點圖的繪制。在使用Seaborn前,也需要進行包引用:

    import seaborn as sns

    在引用seaborn工具包之后,就可以使用seaborn工具包的函數(shù)了。如果想要做散點圖,可以直接使用sns.jointplot(x, y, data=None, kind='scatter')函數(shù)。其中x、y是data中的下標。data就是我們要傳入的數(shù)據(jù),一般是DataFrame類型。kind這類我們?nèi)catter,代表散點的意思。當然kind還可以取其他值,這個我在后面的視圖中會講到,不同的kind代表不同的視圖繪制方式。

    好了,讓我們來模擬下,假設(shè)我們的數(shù)據(jù)是隨機的1000個點。

    我們運行一下這個代碼,就可以看到下面的視圖(第一張圖為Matplotlib繪制的,第二張圖為Seaborn繪制的)。其實你能看到Matplotlib和Seaborn的視圖呈現(xiàn)還是有差別的。Matplotlib默認情況下呈現(xiàn)出來的是個長方形。而Seaborn呈現(xiàn)的是個正方形,而且不僅顯示出了散點圖,還給了這兩個變量的分布情況。

    Matplotlib繪制:

    Seaborn繪制:

    擴展閱讀:

    數(shù)據(jù)可視化:掌握數(shù)據(jù)領(lǐng)域的萬金油技能

    折線圖

    折線圖可以用來表示數(shù)據(jù)隨著時間變化的趨勢。

    在Matplotlib中,我們可以直接使用plt.plot函數(shù),當然需要提前把數(shù)據(jù)按照X軸的大小進行排序,要不畫出來的折線圖就無法按照X軸遞增的順序展示。

    在Seaborn中,我們使用sns.lineplot (x, y, data=None)函數(shù)。其中x、y是data中的下標。data就是我們要傳入的數(shù)據(jù),一般是DataFrame類型。

    這里我們設(shè)置了x、y的數(shù)組。x數(shù)組代表時間(年),y數(shù)組我們隨便設(shè)置幾個取值。下面是詳細的代碼。

    然后我們分別用Matplotlib和Seaborn進行畫圖,可以得到下面的圖示。你可以看出這兩個圖示的結(jié)果是完全一樣的,只是在seaborn中標記了x和y軸的含義。

    直方圖

    直方圖是比較常見的視圖,它是把橫坐標等分成了一定數(shù)量的小區(qū)間,這個小區(qū)間也叫作“箱子”,然后在每個“箱子”內(nèi)用矩形條(bars)展示該箱子的箱子數(shù)(也就是y值),這樣就完成了對數(shù)據(jù)集的直方圖分布的可視化。

    在Matplotlib中,我們使用plt.hist(x, bins=10)函數(shù),其中參數(shù)x是一維數(shù)組,bins代表直方圖中的箱子數(shù)量,默認是10。

    在Seaborn中,我們使用sns.distplot(x, bins=10, kde=True)函數(shù)。其中參數(shù)x是一維數(shù)組,bins代表直方圖中的箱子數(shù)量,kde代表顯示核密度估計,默認是True,我們也可以把kde設(shè)置為False,不進行顯示。核密度估計是通過核函數(shù)幫我們來估計概率密度的方法。

    這是一段繪制直方圖的代碼。

    我們創(chuàng)建一個隨機的一維數(shù)組,然后分別用Matplotlib和Seaborn進行直方圖的顯示,結(jié)果如下,你可以看出,沒有任何差別,其中最后一張圖就是kde默認為Ture時的顯示情況。

    熱力圖

    熱力圖,英文叫heat map,是一種矩陣表示方法,其中矩陣中的元素值用顏色來代表,不同的顏色代表不同大小的值。通過顏色就能直觀地知道某個位置上數(shù)值的大小。另外你也可以將這個位置上的顏色,與數(shù)據(jù)集中的其他位置顏色進行比較。

    熱力圖是一種非常直觀的多元變量分析方法。

    我們一般使用Seaborn中的sns.heatmap(data)函數(shù),其中data代表需要繪制的熱力圖數(shù)據(jù)。

    這里我們使用Seaborn中自帶的數(shù)據(jù)集flights,該數(shù)據(jù)集記錄了1949年到1960年期間,每個月的航班乘客的數(shù)量。

    通過seaborn的heatmap函數(shù),我們可以觀察到不同年份,不同月份的乘客數(shù)量變化情況,其中顏色越淺的代表乘客數(shù)量越多,如下圖所示:

    成對關(guān)系

    如果想要探索數(shù)據(jù)集中的多個成對雙變量的分布,可以直接采用sns.pairplot函數(shù)。它會同時展示出DataFrame中每對變量的關(guān)系,另外在對角線上,你能看到每個變量自身作為單變量的分布情況。它可以說是探索性分析中的常用函數(shù),可以很快幫我們理解變量對之間的關(guān)系。

    pairplot函數(shù)的使用,就好像我們對DataFrame使用describe函數(shù)一樣方便,是數(shù)據(jù)探索中的常用函數(shù)。

    這里我們使用Seaborn中自帶的iris數(shù)據(jù)集,這個數(shù)據(jù)集也叫鳶尾花數(shù)據(jù)集。鳶尾花可以分成Setosa、Versicolour和Virginica三個品種,在這個數(shù)據(jù)集中,針對每一個品種,都有50個數(shù)據(jù),每個數(shù)據(jù)中包括了4個屬性,分別是花萼長度、花萼寬度、花瓣長度和花瓣寬度。通過這些數(shù)據(jù),需要你來預(yù)測鳶尾花卉屬于三個品種中的哪一種。

    這里我們用seaborn中的pairplot函數(shù)來對數(shù)據(jù)集中的多個雙變量的關(guān)系進行探索,如下圖所示。從圖上你能看出,一共有sepal_length、sepal_width、petal_length和petal_width4個變量,它們分別是花萼長度、花萼寬度、花瓣長度和花瓣寬度。

    下面這張圖相當于這4個變量兩兩之間的關(guān)系。比如矩陣中的第一張圖代表的就是花萼長度自身的分布圖,它右側(cè)的這張圖代表的是花萼長度與花萼寬度這兩個變量之間的關(guān)系。

    關(guān)于本次Python可視化的學習,我希望你能掌握:

    視圖的分類,以及可以從哪些維度對它們進行分類;

    十種常見視圖的概念,以及如何在Python中進行使用,都需要用到哪些函數(shù);

    需要自己動手跑一遍案例中的代碼,體驗下Python數(shù)據(jù)可視化的過程。

      本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
      轉(zhuǎn)藏 分享 獻花(0

      0條評論

      發(fā)表

      請遵守用戶 評論公約

      類似文章 更多

      主站蜘蛛池模板: 成人做受120秒试看试看视频| 亚洲午夜久久久久久久久电影网| 国产AV福利第一精品| 深夜视频国产在线观看| 日韩中文字幕有码av| 暖暖 在线 日本 免费 中文| 青青草原国产AV福利网站| 西西人体44WWW高清大胆| 日韩放荡少妇无码视频| 婷婷综合久久中文字幕蜜桃三电影| 国产成人午夜福利精品| 无码一区二区三区AV免费| 国产精品欧美一区二区三区不卡 | 日韩精品卡2卡3卡4卡5| 国产色无码精品视频免费| 亚洲人成电影在线天堂色| 伊人久久大香线蕉AV网禁呦| 国产乱子伦农村叉叉叉| 亚洲精品午睡沙发系列| 亚洲欧美日韩成人综合一区| 又爽又黄又无遮挡的激情视频免费 | 中文字幕人妻系列人妻有码| 久久婷婷五月综合97色直播| 精品一卡2卡三卡4卡乱码精品视频| 久久精品国产99久久久古代| 欧美福利电影A在线播放| 日本A级视频在线播放| 国产高清在线男人的天堂| 国产精品无码DVD在线观看| 色偷偷人人澡久久超碰97| 亚洲AV无码一区二区三区在线播放| 婷婷久久综合九色综合88| 婷婷五月综合色视频| 国产破外女出血视频| 欧美xxxx做受欧美.88| 色欲久久人妻内射| 久久综合九色综合欧洲98| 日韩加勒比一本无码精品| 国产精品久久久久久超碰| 麻花传媒剧国产MV免费播放| 无码AV无码免费一区二区|