兩組樹形數據的比對_Python數據分析-可視化“大佬”之Seaborn

 2023-12-25 阅读 28 评论 0

摘要:如果有想關注Java開發相關的內容,可以轉我的博客進行詳細觀看——上次學習了如何使用Matplolib進行數據可視化,接下來讓我們來看看另一個可視化工具——seabornSeaborn既然有了matplotlib,那為啥還需要seaborn呢?其實seaborn是在matplotlib基礎上進行封裝

如果有想關注Java開發相關的內容,可以轉我的博客進行詳細觀看——

上次學習了如何使用Matplolib進行數據可視化,接下來讓我們來看看另一個可視化工具——seaborn

Seaborn

既然有了matplotlib,那為啥還需要seaborn呢?其實seaborn是在matplotlib基礎上進行封裝,Seaborn就是讓困難的東西更加簡單。用Matplotlib最大的困難是其默認的各種參數,而Seaborn則完全避免了這一問題。seaborn是針對統計繪圖的,一般來說,seaborn能滿足數據分析90%的繪圖需求,復雜的自定義圖形,還是要Matplotlib。Seaborn旨在使可視化成為探索和理解數據的核心部分。其面向數據集的繪圖功能對包含整個數據集的數據框和數組進行操作,并在內部執行必要的語義映射和統計聚合,以生成信息圖。

5種主題風格

  • darkgrid
  • whitegrid
  • dark
  • white
  • ticks

統計分析繪制圖——可視化統計關系

統計分析是了解數據集中的變量如何相互關聯以及這些關系如何依賴于其他變量的過程。常見方法可視化統計關系:散點圖和線圖。 常用的三個函數如下: - replot()

  • scatterplot(kind="scatter";默認)
  • lineplot(kind="line",默認)

常用的參數

* x,y,hue 數據集變量 變量名
* date 數據集 數據集名
* row,col 更多分類變量進行平鋪顯示 變量名
* col_wrap 每行的最高平鋪數 整數
* estimator 在每個分類中進行矢量到標量的映射 矢量
* ci 置信區間 浮點數或None
* n_boot 計算置信區間時使用的引導迭代次數 整數
* units 采樣單元的標識符,用于執行多級引導和重復測量設計 數據變量或向量數據
* order, hue_order 對應排序列表 字符串列表
* row_order, col_order 對應排序列表 字符串列表
* kind : 可選:point 默認, bar 柱形圖, count 頻次, box 箱體, violin 提琴, strip 散點,swarm 分散點
size 每個面的高度(英寸) 標量
aspect 縱橫比 標量
orient 方向 "v"/"h"
color 顏色 matplotlib顏色
palette 調色板 seaborn顏色色板或字典
legend hue的信息面板 True/False
legend_out 是否擴展圖形,并將信息框繪制在中心右邊 True/False
share{x,y} 共享軸線 True/False

用散點圖關聯變量

散點圖是統計可視化的支柱。它描繪了使用點云的兩個變量的聯合分布,其中每個點代表數據集中的觀察。因此觀測兩個變量之間的分布關系最好用散點圖

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns## 定義主題風格
sns.set(style="darkgrid")## 加載tips
tips = sns.load_dataset("tips")## 繪制圖形,根據不同種類的三點設定圖注
sns.relplot(x="total_bill", y="tip", hue="smoker", style="time", data=tips);
plt.show()

4cf06986fa390bde041fd7c9b5d781c4.png
## 繪制漸變效果的散點圖
sns.relplot(x="total_bill", y="tip", hue="size", palette="ch:r=-.5,l=.75", data=tips);
plt.show()

a8fc466def4b54455b60e9a003ec1c48.png

如果數據量大的情況下,用hex散點圖

eg:
## 設置顏色
sns.set(color_codes=True)
mean, cov = [0, 1], [(1, .5), (.5, 1)] # 設置均值(一組參數)和協方差(兩組參數)
x, y = np.random.multivariate_normal(mean, cov, 1000).T
with sns.axes_style("ticks"):sns.jointplot(x=x, y=y, kind="hex", color="k")
plt.show()

6bd63593e27df51b9467c79ce08137e9.png

熱點圖

熱點圖是通過使用不同的標志將圖或頁面上的區域按照受關注程度的不同加以標注并呈現的一種分析手段,標注的 手段一般采用顏色的深淺、點的疏密以及呈現比重的形式。在數據分析中比較常用,如果離散數據波動變化比較 大,那么可以使用熱點圖來觀察波動變化,另外特別是在相關性和相關系數的應用中,特征和特征之間會存在相關 系數,常用的方式是采用Pandas求出相關系數,此時可以采用熱點圖來清晰地觀察特征和特征之間的相關程度

eg: sns.set(style="darkgrid") np.random.seed(sum(map(ord, "distributions"))) x = np.random.gamma(6, size=200)     sns.distplot(x, kde=False, fit=stats.gamma) plt.show()

ef2eeb78b54c95f4feebefa05362ca9c.png

直方圖

直方圖主要是用于單變量單特征數據分析

eg:
sns.set(style="darkgrid")
np.random.seed(sum(map(ord, "distributions")))
x = np.random.gamma(6, size=200)
sns.distplot(x, kde=False, fit=stats.gamma)
plt.show()

753242352e1f952c8dcec4bfed2df8a4.png

比較圖

比較土主要適用于觀察變量兩兩之間的關系。對角線是直方圖(統計數量),其他的是散點圖。

eg:采用的是鳶尾花的內部數據集
sns.set(color_codes=True)
iris = sns.load_dataset("iris")
sns.pairplot(iris)
plt.show()

cbba6d50cf95b8f2c6633ee10b0736aa.png

回歸分析圖

regplot()lmplot()都可以繪制回歸關系,推薦regplot()

兩者間主要的區別是:regplot接受各種格式的x y,包括numpy arrays ,pandas series 或者pandas Dataframe對象。相比之下,lmplot()只接受字符串對象。這種數據格式被稱為’long-form’或者’tidy’。除了輸入數據的便利性外,regplot()可以看做擁有lmplot()特征的一個子集。

%matplotlib inline
import numpy as np
import pandas as pd
import matplotlib as mpl
import matplotlib.pyplot as pltimport seaborn as sns
sns.set(color_codes=True)
np.random.seed(sum(map(ord, "regression")))tips = sns.load_dataset("tips")## 使用regplot繪制
sns.regplot(x="total_bill", y="tip", data=tips)
plt.show()

ac04092e129d309df45e79cff8fa654e.png

rebust回歸圖,需要添加參數忽略某個異常點

eg:
anscombe = sns.load_dataset("anscombe")
sns.lmplot(x="x", y="y", data=anscombe.query("dataset == 'III'"),robust=True, ci=None, scatter_kws={"s": 80})
plt.show()

17ad727d16e15be00f77c9c50dbf3ef2.png

樹形圖

類似于散點圖,用于顯示每一個數據的分布情況

eg:
tips = sns.load_dataset("tips")
sns.swarmplot(x="day", y="total_bill",hue="sex",data=tips)
plt.show()

8014a2d23ee05bb15e790bcd4d3cb75c.png

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/2/194653.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息