python可視化(三)seaborn單變量分析繪圖(直方圖、條形圖)

2020-12-08 python萬

在前面兩篇文章中,我們已經學習了seaborn繪圖的風格和顏色設置,從本篇文章開始,我們開始選一些有意思的數據集進行各種圖形繪製,在實踐中感受數據可視化的魅力。本篇文章主要講2個繪圖函數,那就是繪製直方圖的函數seaborn,distplot()和繪製條形圖的函數seaborn.barplot()(關於直方圖和條形圖的區別請查閱前面matplotlib系列中的相關文章)。

處理繪圖數據

今天我們用直方圖和條形圖展示下NBA2017-2018賽季各球員薪資情況。首先,我們用pandas把數據讀寫進來,然後按薪資情況降序排序,看下NBA球員中薪資前10的球員有哪些。

#導入需要的依賴包%matplotlib inlineimport numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as sns#讀入數據data=pd.read_csv('NBA_season1718_salary.csv')#對讀進來的數據按薪資降序排序並取前10條數據salary_top10=(data.sort_values("season17_18",ascending=False)).head(10)#取出球員列數據,作為條形圖橫坐標player=salary_top10['Player']#取出球員薪資列,作為條形圖縱坐標season_salary=salary_top10['season17_18'] 前10條數據結構如下圖:

前10球員薪資數據

用seaborn.barplot()繪製條形圖

用seaborn.barplot()函數可以繪製條形圖,如果不傳入任何參數,會繪製出一個坐標軸,如圖:

sns.barplot()

使用默認參數繪圖

現在,我們將球員數據作為橫坐標,球員薪資作為縱坐標,繪製出條形圖。

plt.figure(figsize=(10,6))plt.xticks(rotation=45)plt.ylim(season.min() * 0.5, season.max() * 1.01)#ci參數表示允許的誤差範圍(控制誤差棒的百分比,在0-100之間)sns.barplot(x=player,y=season,data=salary_top10,ci=68)

NBA球員薪資排名

從條形圖中不難看出,勇士隊的當家球星庫裡薪資最高,將近達到3500萬美元,位居第二的是勒布朗詹姆斯,也是在3300萬美元以上。上面的條形圖是按球員作為橫坐標,下面我們按球隊匯總,看看哪個球隊的薪資總額最高。

salary_by_team=data.groupby(by='Tm').sum().reset_index()salary_by_team=salary_by_team.sort_values(by='season17_18',ascending=False)tm_top10=salary_by_team[0:10]tm=tm_top10['Tm']salary_sum=tm_top10['season17_18']sns.barplot(tm,salary_sum,data=tm_top10)sns.color_palette('hls',10)sns.set(style="whitegrid")

NBA各球隊薪資支付條形圖

從上麵條形圖中可以看出勇士支付最高,其次是騎士!

seaborn.distplot()繪製直方圖

上面我們用條形圖對比了各球員薪資排名和球隊支付的薪資排名,接下來我們用直方圖的方式展示整個聯盟中各球員的薪資水平分布和球隊薪資水平分布。

#用pandas讀入數據data=pd.read_csv('NBA_season1718_salary.csv')#取出薪資列salary=data['season17_18']#繪製直方圖sns.distplot(salary)

NBA球員2017-2018賽季薪資分布

上面這個圖,我們沒有指定bins,所以箱子數有點多,那我們分別指定bins為3,10,30,看看效果。

sns.distplot(salary,bins=3)sns.distplot(salary,bins=10)sns.distplot(salary,bins=30)

bins=3
bins=10
bins=30

對於上面的圖,橫坐標表示薪資範圍,縱坐標表示每個球員薪資所佔頻數。下面我們匯總球隊薪資,並繪製直方圖。

#按球隊匯總求和並重新設置indexsalary_by_team=data.groupby(by='Tm').sum().reset_index()#按薪資升序排序salary_by_team=salary_by_team.sort_values(by='season17_18',ascending=False)tm_top10=salary_by_team[0:10]tm=tm_top10['Tm']salary_sum=tm_top10['season17_18']sns.distplot(salary_sum)

NBA各球隊薪資分布圖

這裡默認分了2個範圍,大家知道有30隻球隊,那麼我們設置bins=30,看看效果:

sns.distplot(salary_sum,bins=30)

bins=30

可以從圖中看出,大部分球隊的薪資總額在1.2-1.3億美元左右。下面我們對球隊薪資總額進行處理,找出樣本的上四分位、下四分位,並以此作為標準,將薪資總額分為3個等級(low:0、mid:1、high:2)。

#對球隊薪資總額按降序順序排序並重設索引salary_by_team=salary_by_team.sort_values(by='season17_18',ascending=True).reset_index()#統計球隊個數cnt=salary_by_team['Tm'].count()Q3=int((3*(cnt+1)/4))Q1=int(((cnt+1)/4))#分別求出下四分位和上四分位,作為判斷薪資水平的標準,低於下四分位的為低,高於上四分位的為高,中間為中等

Q1_value=salary_by_team.at[Q1,'season17_18']Q3_value=salary_by_team.at[Q3,'season17_18']然後,自定義一個分類函數,將薪資連續數值離散化:

def which_class(i):if i<Q1_value: return 0 elif i<Q3_value and i>Q1_value: return 1 else: return 2然後用pandas的apply函數,處理連續值:#新增level列,並將處理的值添加到新增列中

salary_by_team['level']=salary_by_team['season17_18'].apply(which_class)

處理結果

#用等級數據繪製直方圖: sns.distplot(salary_by_team['level'])

薪資水平直方圖

從圖中可以發現,等級為1(中等)佔的比重最大,這也是符合實際情況的,不可能所有的球隊都像快船一樣有錢!好了,關於條形圖和直方圖到此為止,下次繼續散點圖繪製,感謝閱讀。

相關焦點

  • Python可視化Seaborn庫詳解——繪圖方法
    在《Python可視化Seaborn庫詳解——繪圖設置》一文中,我們介紹了Seaborn庫的繪圖參數設置,本文我們將介紹具體的繪圖方法。其實雖然Seaborn庫看著繪圖函數多,但有幾個函數的泛化性非常強,通過參數的設置是可以繪出多種圖形的。為了便於掌握這些函數,本文會對這些方法進行歸納整理,力爭做到提綱挈領的目的。
  • python數據可視化(一)seaborn介紹及繪圖風格設置
    seaborn庫是對matplotlib庫更高級別的封裝,相當於提供了各種統計圖的模板,我們只需要將自己的數據傳入相應的方法即可,所以說,如果你學懂了前面matplotlib中的基礎繪圖方法的話,學習本主題內容將非常輕鬆(註:由於系統編輯器限制,所有代碼行有加粗的無序列表表示。)首先,我們還是來看一下seaborn庫主要學習的內容及篇幅安排。
  • Python可視化23|seaborn.distplot單變量分布圖(直方圖|核密度圖)
    本文介紹seaborn.distplot繪製單變量分布圖(直方圖及核密度圖)。數據準備繪製直方圖hist修改直方圖hist中箱子數bins 直方圖成箱方式 繪製核密度曲線kernel density estimate (KDE)seaborn.kdeplot繪製窄寬度核密度曲線 bandwidth (bw),控制核密度曲線胖瘦核密度曲線結合直方圖fit參數seaborn.distplot
  • 技能分享|Python數據可視化利器:Seaborn使用方法(一)
    hue='分組繪圖參數', data=原始數據df對象)sns.圖名(x=np.array, y=np.array[, ...])(數據連結:https://pan.baidu.com/s/19sdHiB5PRy-VSc3S0sYDnQ)04基礎的直方圖、曲線圖等我們就不再一一示範,本篇中,我們主要示範散點圖、箱線圖、小提琴圖、單變量密度估計圖、雙變量密度估計圖、熱力圖、矩陣散點圖的繪製。
  • 14個Seaborn數據可視化圖
    數據可視化在數據挖掘中起著非常重要的作用。各種數據科學家花費了他們的時間通過可視化來探索數據。為了加快這一進程,我們需要有合適的工具。沒有規劃的情況下,資源也無法轉化為有價值的商品。因此,我希望本文能夠為您提供關於所有可視化方法的架構。目錄簡介了解你的數據分布曲線a. 直方圖b. 聯合圖c. 配對圖d. Rug圖分布圖a. 條形圖b.
  • python可視化
    基於pandas的內置可視化基本繪圖Series和DataFrame上的這個功能只是使用matplotlib庫的plot()方法的簡單包裝實現。繪圖方法允許除默認線圖之外的少數繪圖樣式。 這些方法可以作為plot()的kind關鍵字參數提供。
  • 用Python演繹5種常見可視化視圖
    同樣,按照變量的個數,我們可以把可視化視圖劃分為單變量分析和多變量分析。可視化的視圖可以說是分門別類,多種多樣,今天我主要介紹常用的5種視圖,包括了散點圖、折線圖、直方圖、熱力圖、成對關係。散點圖的英文叫做scatter plot,它將兩個變量的值顯示在二維坐標中,非常適合展示兩個變量之間的關係。
  • 數據可視化最有價值的50個圖表 | 網際網路數據資訊網-199IT | 中文...
    在數據分析和可視化中最有用的 50 個 Matplotlib 圖表。 這些圖表列表允許您使用 python 的 matplotlib 和 seaborn 庫選擇要顯示的可視化對象。這些圖表根據可視化目標的7個不同情景進行分組。 例如,如果要想像兩個變量之間的關係,請查看「關聯」部分下的圖表。 或者,如果您想要顯示值如何隨時間變化,請查看「變化」部分,依此類推。
  • matplotlib的Python數據可視化和探索——入門指南
    這是我們將使用matplotlib設計的可視化條狀圖餅形圖箱形圖直方圖折線圖和子圖散點圖了解數據集和問題陳述在介紹不同的可視化和圖表類型之前,我想花一些時間來理解數據。這是機器學習流程中的關鍵部分,我們應該充分注意它。我們將在此matplotlib教程中分析「 食品需求預測」項目。
  • Python可視化很簡單,一文學會繪製柱狀圖、條形圖和直方圖
    matplotlib庫作為Python數據化可視化的最經典和最常用庫,掌握了它就相當於學會了Python的數據化可視化,通過前幾次呢,咱們已經討論了使用matplotlib庫中的圖表組成元素的幾個重要函數,相信大家已經學會並掌握了哦,今天呢,咱們再深入一點哦,一起來聊聊關於如何繪製柱狀圖
  • 用Seaborn繪製圖表
    使用seaborn和Pokemon(口袋妖怪)數據集的屬性,我們將創建一些非常有趣的可視化效果。我們首先要看的是散點圖。散點圖散點圖使用點來表示不同數值變量的值。每個點在水平軸和垂直軸上的位置表示單個數據點的值。它們用於觀察變量之間的關係。在seaborn中製作散點圖只需要使用「lmplot」函數。
  • 小白也能看懂的seaborn入門示例
    箱圖violinplot() 小提琴圖boxenplot() 增強箱圖pointplot() 點圖barplot() 條形圖countplot() 計數圖jointplot() 雙變量關係圖pairplot() 變量關係組圖distplot() 直方圖,質量估計圖kdeplot
  • python數據分析常用圖大集合
    )plt.show()sns.distplot(s, kde=True)plt.show()三、垂直條形圖條形圖可以幫我們查看類別的特徵。在條形圖中,長條形的長度表示類別的頻數,寬度表示類別。可以幫我們分析出數據的差異性、離散程度和異常值等。
  • Python繪圖筆記:繪製四色散點圖和誤差條形圖
    figure1#導入繪製散點圖所需要的包import matplotlib.pyplot as pltfrom numpy.random import rand#生成繪圖所需的圖紙fig, ax = plt.subplots
  • 使用Pandas,Seaborn和Plotly繪製漂亮的圖表
    完整的代碼以及Python可視化指南,介紹了Pandas,Seaborn和Plotly的繪圖。sns.reset_defaults()sns.set(rc={'figure.figsize':(7,5)},style="white" # nicer layout )繪製單變量分布如前所述,我非常喜歡分布。 直方圖和核密度分布都是可視化特定變量的關鍵特徵的有效方法。
  • 數據分析學習:手把手教你用直方圖、餅圖和條形圖做數據分析...
    對於定量數據,要想了解其分布形式是對稱的還是非對稱的、發現某些特大或特小的可疑值,可做出頻率分布表、繪製頻率分布直方圖、繪製莖葉圖進行直觀分析;對於定性數據,可用餅圖和條形圖直觀地顯示其分布情況。
  • 可視化工具不知道怎麼選?深度評測5大Python數據可視化工具
    作者 | 劉早起來源 | 早起Python(ID: zaoqi-python)相信很多讀者學習Python就是希望作出各種酷炫的可視化圖表,當然你一定會聽說過Matplotlib、Pyecharts、Seaborn、Plotly、Bokeh這五大工具,本文就將通過真實繪圖來深度評測這五個Python數據可視化的庫,看看到底這幾種工具各有什麼優缺點
  • 超硬核的 Python 數據可視化教程!
    Python實現可視化的三個步驟:確定問題,選擇圖形 轉換數據,應用函數 參數設置,一目了然 1、首先,要知道我們用哪些庫來畫圖?matplotlibpython中最基本的作圖庫就是matplotlib,是一個最基礎的Python可視化庫,一般都是從matplotlib上手Python數據可視化,然後開始做縱向與橫向拓展。
  • 這5種數據可視化方式是數據科學家標配!
    【IT168 編譯】數據可視化是數據科學家工作的重要組成部分。在項目的早期階段,你通常會進行探索性數據分析(EDA)以獲取對數據的一些洞察。創建可視化確實有助於使事情更清晰易懂,特別是對於大型高維數據集。在你的項目結束時,能夠以清晰、簡潔和引人注目的方式展示你的最終結果非常重要,因為你的受眾往往是非技術性客戶,他們可以理解。