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

          【Python】5種基本但功能非常強大的可視化類型

          共 3049字,需瀏覽 7分鐘

           ·

          2021-04-09 11:16

          作者 | Soner Y?ld?r?m

          編譯 | VK
          來源 | Towards Data Science

          數(shù)據(jù)可視化是數(shù)據(jù)科學(xué)的重要組成部分。它對于探索和理解數(shù)據(jù)非常有用。在某些情況下,可視化在傳遞信息方面也比普通數(shù)字好得多。

          使用數(shù)據(jù)可視化技術(shù)可以很容易地發(fā)現(xiàn)變量之間的關(guān)系、變量的分布以及數(shù)據(jù)中的底層結(jié)構(gòu)。

          在本文中,我們將介紹數(shù)據(jù)分析中常用的5種基本數(shù)據(jù)可視化類型。我們將使用Altair庫,它是Python的統(tǒng)計可視化庫。

          如果你喜歡其中一個用于數(shù)據(jù)可視化任務(wù)的庫的話,我以前曾用Seaborn和ggplot2寫過類似的文章。我建議你仔細檢查一下,因為在同一個任務(wù)上比較不同的工具和框架會幫助你學(xué)得更好。

          讓我們首先創(chuàng)建一個用于示例的示例數(shù)據(jù)幀。

          import numpy as np
          import pandas as pd

          df = pd.DataFrame({
             'date':pd.date_range(start='2020-01-10', periods=100, freq='D'),
             'cat':pd.Series(['A','B','C']).sample(n=100, replace=True),
             'val':(np.random.randn(100) + 10).round(2),
             'val2':(np.random.random(100) * 10).round(2),
             'val3':np.random.randint(20,50, size=100)
          })

          df = df.reset_index(drop=True)

          df.head()

          數(shù)據(jù)幀由100行和5列組成。它包含datetime、categorical和numerical值。

          1.折線圖

          折線圖顯示了兩個變量之間的關(guān)系。其中之一通常是時間。因此,我們可以看到變量是如何隨時間變化的,例如股票價格,每日溫度。

          下面是如何用Altair創(chuàng)建一個簡單的折線圖。

          import altair as alt

          alt.Chart(df).mark_line().encode(
              x='date', y='val'
          )

          讓我們詳細說明一下語法。我們首先將數(shù)據(jù)傳遞給圖表對象。下一個函數(shù)指定繪圖類型。encode函數(shù)指定繪圖中使用的列。因此,在encode函數(shù)中寫入的任何內(nèi)容都必須鏈接到數(shù)據(jù)幀。

          Altair提供了更多的函數(shù)和參數(shù)來生成更多信息或定制的繪圖。我們將在下面的例子中看到它們。

          為了使上面的折線圖看起來更好,我們可以使用“scale”特性調(diào)整y軸的值范圍。

          alt.Chart(df).mark_line().encode(
             alt.X('date'),
             alt.Y('val', scale=alt.Scale(zero=False))
          )

          為了使用scale屬性,我們使用X和Y編碼(例如alt.X)指定列名。zero參數(shù)設(shè)置為“False”,以防止軸從零開始。

          2.散點圖

          散點圖也是一種關(guān)系圖。它通常用于顯示兩個數(shù)值變量的值。我們可以觀察它們之間是否有關(guān)聯(lián)。

          我們可以創(chuàng)建“val”和“val2”列的散點圖,如下所示。

          alt.Chart(df).mark_circle(size=40).encode(
             alt.X('val', scale=alt.Scale(zero=False)),
             alt.Y('val2'),
             alt.Color('cat')
          )

          我們已經(jīng)使用顏色編碼來根據(jù)“cat”列分離數(shù)據(jù)點。mark_circle函數(shù)的size參數(shù)用于調(diào)整散點圖中點的大小。

          3.直方圖

          直方圖用于顯示連續(xù)變量的分布。它將取值范圍劃分為離散的數(shù)據(jù)元,并統(tǒng)計每個數(shù)據(jù)元中的數(shù)據(jù)點個數(shù)。

          讓我們創(chuàng)建“val3”列的直方圖。

          alt.Chart(df).mark_bar().encode(
             alt.X('val3', bin=True),
             alt.Y('count()')
          ).properties(title='Histogram of val3', height=300, width=450)

          我們還使用properties函數(shù)自定義大小并添加標(biāo)題。

          4.箱線圖

          箱線圖提供了變量分布的概述。它顯示了值是如何通過四分位數(shù)和離群值展開的。

          我們可以使用Altair的mark_boxplot函數(shù)創(chuàng)建一個箱線圖,如下所示。

          alt.Chart(df).mark_boxplot().encode(
            alt.X('cat'),
            alt.Y('val2', scale=alt.Scale(zero=False))
          ).properties(height=200, width=400)

          A中的值范圍小于其他兩個類別??騼?nèi)的白線表示中值。

          5.條形圖

          條形圖可用于可視化離散變量。每個類別都用一個大小與該類別的值成比例的條表示。

          例如,我們可以使用條形圖來可視化按week分組的“val3”列。我們先用pandas庫計算。

          df['week'] = df['date'].dt.isocalendar().week

          weekly = df[['week','val3']].groupby('week', as_index=False).sum()

          weekly.head()

          第一行從date列中提取周。第二行將“val3”列按周分組并計算總和。

          我們現(xiàn)在可以創(chuàng)建條形圖。

          alt.Chart(weekly).mark_bar().encode(
             x='val3:Q', y='week:O'
          )

          結(jié)論

          我們已經(jīng)介紹了5種基本但功能非常強大的可視化類型。它們都是探索數(shù)據(jù)集和揭示變量之間關(guān)系的基礎(chǔ)。

          使用Altair可以創(chuàng)建更復(fù)雜、信息更豐富、自定義的可視化效果。它在數(shù)據(jù)轉(zhuǎn)換和過濾方面也非常高效和強大。

          往期精彩回顧





          本站qq群851320808,加入微信群請掃碼:

          瀏覽 60
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

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

          手機掃一掃分享

          分享
          舉報
          <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>
                  青青草国产免费无码欧美 | 操美女逼逼 | 操逼毛片网站 | 91精品国产99久久久久久 | 久草新 |