python數據分析——seaborn繪圖1

參考資料:活用pandas庫

? ? ? ? matplotlib庫是python的和興繪圖工具,而seaborn基于matplotlib創建,它為繪制統計圖提供了更高級的接口,使得只用少量代碼就能生成更美觀、更復雜的可視化效果。

? ? ? ? seaborn庫和pandas以及其他pydata庫(numpy、scipy以及statsmodels)緊密集成在一起,簡化了數據分析過程的各種可視化工作。由于seaborn是基于matplotlib的,因此用戶仍能對可視化進行微調。

# 導入庫
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
tips=pd.read_csv(r"...\seaborn常用數據案例\tips.csv")
print(tips.head())

1、直方圖

# 使用subplots函數創建畫布,并在其中添加各個子圖
fig,ax=plt.subplots()  # 默認創建1個子圖
# 使用seaborn的distplot函數繪圖
ax=sns.histplot(tips['total_bill'])
ax.set_title("Total Bill Histogram Plot")
plt.show()

2、密度圖(和密度估計):密度圖是展現單變量分布的另一種方法,本質上通過繪制以每個數據點為中心的正態分布,然后消除重疊的圖。

fig,ax=plt.subplots()  # 默認創建1個子圖
ax=sns.histplot(tips['total_bill'],kde=True)
ax.set_title("Total Bill Histogram with Density Plot")

? ? ? ? 如果只要密度圖,還可以使用sns.kdeplot()函數

fig,ax=plt.subplots()  # 默認創建1個子圖
ax=sns.kdeplot(tips['total_bill'])
ax.set_title("Total Bill Density")

3、計數圖(條形圖):條形圖不是通過對值分組來描述分布的,而是對離散變量計數的。

fig,ax=plt.subplots()
ax=sns.countplot(x='day',data=tips)
ax.set_title("Count of days")
ax.set_xlabel("Day of the Week")
ax.set_ylabel("Frequency")

4、散點圖

? ? ? ? 在seaborn中,沒有直接創建散點圖的函數。可以使用regplot函數或lmplot函數,二者主要區別是regplot創建軸域,而lmplot創建圖。

? ? ? ? 還可以使用jointplot在每個軸上創建包含單個變量的散點圖。jointplot與其他繪圖函數的主要區別是,它不返回軸域,所以無需創建帶有軸域的畫布來放置圖。jointplot函數會創建并返回JointGrid對象。

fig,ax=plt.subplots()
ax=sns.regplot(x='total_bill',y='tip',data=tips,fit_reg=False)
ax.set_title("Scatterplot of Total Bill and Tip")
ax.set_xlabel("Total Bill")
ax.set_ylabel("Tip")

fig=sns.lmplot(x='total_bill',y='tip',data=tips)

joint=sns.jointplot(x='total_bill',y='tip',data=tips)
# 設置坐標軸標簽
joint.set_axis_labels(xlabel='Total Bill',ylabel='Tip')
# 添加標題,設置字號
# 移動軸域上方的文字
joint.fig.suptitle("Joint Plot of Total Bill and Tip",fontsize=10,y=1.03)

5、蜂巢圖

? ? ? ? 散點圖適用于比較兩個變量,但有時圖中的點太多反而會失去意義。解決該問題的一種方法就是把圖中的點裝箱。就像直方圖可將變量裝箱來創建條形圖一樣,蜂巢圖(hexbin)可以對兩個變量裝箱,顯示他們的頻次分布狀況。之所以使用六邊形是因為它是覆蓋任意兩維平面最有效的形狀。

hexbin=sns.jointplot(x='total_bill',y='tip',data=tips,kind='hex')
hexbin.set_axis_labels(xlabel='Total Bill',ylabel='Tip')
hexbin.fig.suptitle('Hexbin Joint Plot of Total Bill and Tip',fontsize=10,y=1.03)

6、2D密度圖

fig,ax=plt.subplots()
ax=sns.kdeplot(x='total_bill',y='tip',data=tips,fill=True)
ax.set_title("Kernel Density Plot of Total Bill and Tip")
ax.set_xlabel('Total Bill')
ax.set_ylabel('Tip')

kde_joint=sns.jointplot(x='total_bill',y='tip',data=tips,kind='kde',fill=True)

7、條形圖

? ? ? ? 條形圖也可以用用于展現多個變量。barplot默認會計算平均值,也可以把某個統計函數傳遞給estimator參數。比如把numpy.std函數傳給它來計算標準差。

fig,ax=plt.subplots()
ax=sns.barplot(x='time',y='total_bill',data=tips)
ax.set_title('Bar plot of average total bill for time of day')
ax.set_xlabel('Time of day')
ax.set_ylabel('Average total bill')

8、箱線圖

? ? ? ? 箱線圖用于顯示多種統計信息:最小值、最大值、中位數、四分位數、以及基于四分位差的離群值等。

fig,ax=plt.subplots()
ax=sns.boxplot(x='time',y='total_bill',data=tips)
ax.set_title('Boxplot of total bill by time of day')
ax.set_xlabel('Time of day')
ax.set_ylabel('Total Bill')

9、小提琴圖

? ? ? ? 箱線圖是經典的數據可視化方法,但可能會掩蓋數據的潛在分布。小提琴圖能顯示與箱線圖相同的值,但它把“箱線”繪成核密度估計。這有助于保留數據的更多可視化信息。

fig,ax=plt.subplots()
ax=sns.violinplot(x='time',y='total_bill',data=tips)
ax.set_title("Violin plot of total bill by time of day")
ax.set_xlabel('Time of day')
ax.set_ylabel('Total Bill')

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/11641.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/11641.shtml
英文地址,請注明出處:http://en.pswp.cn/web/11641.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Go 阻塞

阻塞 在Go語言中,阻塞通常指的是一個goroutine(輕量級線程)在等待另一個goroutine完成操作(如I/O操作、channel通信等)時,暫時停止執行的現象。Go語言提供了多種同步和通信機制,可以用于實現阻…

數據賦能(86)——數據要素:管理核心框架

數據管理的核心框架是一個綜合性的體系,旨在確保數據的有效利用、安全性以及合規性。這個框架主要包含了以下幾個關鍵組成部分: 數據治理策略與目標:明確數據管理的整體戰略和目標,包括數據價值的釋放、數據資產地位的確定、多元…

OpenHarmony 實戰開發——移植通信子系統

通信子系統目前涉及Wi-Fi和藍牙適配,廠商應當根據芯片自身情況進行適配。 移植指導 Wi-Fi編譯文件內容如下: 路徑:“foundation/communication/wifi_lite/BUILD.gn” group("wifi") {deps [ "$ohos_board_adapter_dir/ha…

C++基礎與深度解析 | 數組 | vector | string

文章目錄 一、數組1.一維數組2.多維數組 二、vector三、string 一、數組 1.一維數組 在C中,數組用于存儲具有相同類型和特定大小的元素集合。數組在內存中是連續存儲的,并且支持通過索引快速訪問元素。 數組的聲明: 數組的聲明指定了元素的…

前端人員如何理解進程和線程

進程和線程的概念: 進程和線程本質都是cpu工作過程的時間片。 進程可以理解為cpu在運行指令即加載保存上下文所要用的時間。也可以理解為一個應用程序運行的實例。 線程是進程中更小的單位,描述一段指令所需要的時間。 進程是資源分配的最小單位&#xf…

【數據結構】數組循環隊列的實現

隊列(Queue)是一種特殊的線性數據結構,它遵循FIFO(First In First Out,先入先出)的原則。隊列只允許在表的前端(front)進行刪除操作,而在表的后端(rear&#…

MySQL中導出CSV格式數據 | Java處理CSV數據

1. 導出不帶表頭的CSV數據 SELECT dataid, recordfilename INTO OUTFILE /tmp/uk_callcenter_event3.csv FIELDS TERMINATED BY , LINES TERMINATED BY \n FROM table_name WHERE createtime > 2024-03-27 22:00:00 AND createtime < 2024-04-29 23:59:59 AND timehou…

使用selenium控制已經打開的瀏覽器,應該如何實現。

要使用Selenium控制一個已經打開的瀏覽器實例&#xff0c;你可以通過以下步驟實現&#xff0c;這里以Google Chrome瀏覽器為例&#xff1a; 步驟 1: 啟動Chrome瀏覽器并啟用遠程調試 首先&#xff0c;你需要以遠程調試模式啟動Chrome瀏覽器。這可以通過在命令行中使用特定參數來…

python下載及安裝

1、python下載地址&#xff1a; Python Releases for Windows | Python.orgThe official home of the Python Programming Languagehttps://www.python.org/downloads/windows/ 2、python安裝 &#xff08;1&#xff09; 直接點擊下載后的可執行文件.exe &#xff08;2&…

Spring Boot項目怎么集成Gitee登錄

一、背景 現在的越來越多的項目&#xff0c;需要集成第三方系統進行登錄。今天我們以Spring Boot項目集成Gitee為例&#xff0c;演示一下怎么使用Oauth2協議&#xff0c;集成第三方系統登錄。 不了解oauth2的&#xff0c;可以看我之前的文章。Ouath2是怎么實現在第三方應用認…

MySQL創建儲存過程函數

DDL CREATE TABLE student (id int(11) NOT NULL AUTO_INCREMENT COMMENT 學號,createDate datetime DEFAULT NULL COMMENT 創建時間,modifyDate datetime DEFAULT NULL COMMENT 修改時間,userName varchar(30) NOT NULL COMMENT 學生名稱,pwd varchar(36) DEFAULT NULL COMME…

代碼隨想錄算法訓練營第五十二天

今日效率低下&#xff0c;努力把題做完。做快一點&#xff01;&#xff01;&#xff01; 300.最長遞增子序列 class Solution { public:int lengthOfLIS(vector<int>& nums) {if (nums.size() 1) return 1;vector<int>dp(nums.size(),1);int result 0;for(i…

計算機畢業設計Python+Spark知識圖譜課程推薦系統 課程預測系統 課程大數據 課程數據分析 課程大屏 mooc慕課推薦系統 大數據畢業設計

1 緒 論 1.1 課題研究背景 在線教育學習平臺是學生用來進行校內或校外拓展課程學習的平臺&#xff0c;平臺需要具備在線視頻觀看&#xff0c;作業提交&#xff0c;形成性考核等功能。在學生學習的過程中&#xff0c;學校的管理者或負責教師需要了解學生的學習情況和學習狀態&…

Spring STOMP-發送消息

如果你想要從應用程序的任何地方向連接的客戶端發送消息&#xff0c;要怎么做&#xff1f;任何應用程序組件都可以向brokerChannel發送消息。要這樣做&#xff0c;最簡單方法是注入一個SimpMessagingTemplate并使用它來發送消息。通常&#xff0c;你會按類型注入它&#xff0c;…

WWW服務器搭建(2)——Apache服務器配置與管理

一、Apache簡介 1.1 關于Apache Apache HTTP Server&#xff08;簡稱Apache&#xff09;是Apache軟件基金會的一個開放源碼的Web服務器&#xff0c;可以在大多數計算機操作系統中運行&#xff0c;由于其跨平臺和安全性被廣泛使用&#xff0c;是最流行的Web服務器端軟件之一。…

01-02-5

1、單鏈表中按位置查找 a.原理 通過傳遞的位置&#xff0c;返回該位置對應的地址&#xff0c;放到主函數定義的指針變量中。 我們認為位置從&#xff1a;有數據的節點開始計數 即如下結構&#xff1a; 查找位置&#xff0c;就是返回該位置對應的空間地址。 b.代碼說明 Ⅰ…

H5嵌入原生----兼容安卓與ios

主要分UI展示&#xff0c;鍵盤&#xff0c;輸入框等等。解決bug最苦惱的問題不是沒有解決方案&#xff0c;而是你沒有找到真正的原因。再就是現象難以重現&#xff0c;每次都要發布代碼&#xff0c;然后到手機app中去測試&#xff0c;模擬。這些地方會耗費大量的精力。 一、UI…

【軟設】常見易錯題匯總

目錄 計算機系統基礎 程序語言基礎 數據結構 算法設計與分析 計算機網絡與信息安全 軟件工程基礎 開發方法&#xff08;結構化與面向對象&#xff09; 數據庫 操作系統 知識產權相關的法律法規 &#x1f92f;&#x1f92f;&#x1f92f;&#x1f92f;&#x1f92f;&#x1f9…

《系統架構設計師教程(第2版)》第10章-軟件架構的演化和維護-07-軟件架構維護

文章目錄 1. 軟件架構知識管理1.1 概念1.2 架構知識的獲取1.3 作用1.4 架構知識管理的現狀 2 軟件架構修改管理3 軟件架構版本管理4. 示例4.1 背景4.2 數據獲取4.3 數據計算4.4 結果分析4.4.1 圈復雜度 (CCN)4.4.2 扇入扇出度 (FFC)4.4.3 模塊間耦合度 (CBO)4.4.4 模塊的響應 (…

mysql group by 細節介紹

mysql中group by的用法是配合聚合函數&#xff0c;利用分組信息進行統計&#xff0c;語句如“select name,sum(id) from test group by name,number”。 先來看下表1&#xff0c;表名為test&#xff1a; 執行如下SQL語句&#xff1a; SELECT name FROM test GROUP BY name 你…