Seaborn數據可視化實戰:Seaborn圖表定制與數據可視化入門

高級圖表定制

學習目標

通過本課程你將掌握如何使用Seaborn庫進行高級圖表定制,包括圖表的標題、圖例、注釋的添加,以及圖表布局和大小的調整。這些技能將幫助你更有效地展示數據,使你的數據故事更加生動和有說服力。

相關知識點

  • Seaborn高級圖表定制

學習內容

1 Seaborn高級圖表定制

高級圖表定制是一種將數據可視化提升到更高藝術與功能層次的創作過程。它不僅僅是簡單地將數據轉化為圖形,而是通過精心設計的色彩搭配、獨特的圖形樣式、巧妙的布局安排以及交互功能的融入,使圖表能夠精準傳達復雜信息的同時,還能吸引觀眾的注意力并激發他們對數據背后故事的探索欲望。這種定制可以根據不同的應用場景和受眾需求,打造出從簡潔優雅到復雜華麗、從靜態展示到動態交互的多樣化圖表,讓數據不再是枯燥的數字,而是變成了一幅幅富有表現力和感染力的視覺作品,幫助用戶更直觀、高效地理解和分析數據。

1.1 添加圖表標題和注釋

在數據可視化中,圖表的標題和注釋是傳達信息的重要組成部分。一個好的標題可以立即吸引觀眾的注意力,而恰當的注釋則可以幫助觀眾更好地理解圖表中的數據點。Seaborn提供了簡單的方法來添加這些元素,使你的圖表更加專業和信息豐富。

理論知識

在Seaborn中,添加圖表標題和注釋主要通過matplotlib庫的函數來實現,因為Seaborn是基于matplotlib構建的。matplotlib.pyplot模塊提供了title()函數來設置圖表的主標題,xlabel()ylabel()函數來設置X軸和Y軸的標簽,而annotate()函數則用于在圖表中添加注釋。

  • 設置圖表標題:使用plt.title()函數可以設置圖表的主標題。你可以通過傳遞一個字符串作為參數來指定標題的文本。此外,還可以通過fontdict參數來調整標題的字體樣式,如字體大小、顏色等。
  • 設置軸標簽:使用plt.xlabel()plt.ylabel()函數可以設置X軸和Y軸的標簽。這些函數同樣接受一個字符串參數來指定標簽文本,并且可以通過fontdict參數來調整標簽的樣式。
  • 添加注釋:使用plt.annotate()函數可以在圖表的特定位置添加注釋。這個函數需要兩個主要參數:注釋的文本和注釋的位置。此外,還可以通過xytext參數來指定注釋文本的位置,以及通過arrowprops參數來添加指向注釋位置的箭頭。

實踐代碼

下面的代碼示例展示了如何使用Seaborn和matplotlib來創建一個帶有標題、軸標簽和注釋的圖表。

%pip install seaborn

從obs桶中獲取數據

!wget https://model-community-picture.obs.cn-north-4.myhuaweicloud.com/ascend-zone/notebook_datasets/c933252e2fa211f087ecfa163edcddae/tips.zip
!unzip tips.zip
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd# 替換為你的本地文件路徑
tips = pd.read_csv('tips.csv')# 創建圖表
sns.scatterplot(x="total_bill", y="tip", data=tips)# 設置圖表標題
plt.title("Total Bill vs. Tip", fontdict={'fontsize': 20, 'color': 'blue'})# 設置軸標簽
plt.xlabel("Total Bill ($)", fontdict={'fontsize': 14, 'color': 'green'})
plt.ylabel("Tip ($)", fontdict={'fontsize': 14, 'color': 'green'})# 添加注釋
plt.annotate('High Tip', xy=(50, 10), xytext=(60, 15),arrowprops=dict(facecolor='black', shrink=0.05))# 顯示圖表
plt.show()

在這里插入圖片描述

1.2 調整圖表布局和大小

調整圖表的布局和大小是確保圖表在不同顯示環境中都能良好呈現的關鍵。Seaborn和matplotlib提供了多種方法來調整圖表的大小和布局,包括設置圖表的尺寸、調整子圖之間的間距等。

理論知識

  • 設置圖表大小:使用plt.figure()函數可以設置圖表的大小。通過傳遞figsize參數,可以指定圖表的寬度和高度(以英寸為單位)。例如,plt.figure(figsize=(10, 6))將創建一個寬度為10英寸、高度為6英寸的圖表。
  • 調整子圖間距:使用plt.subplots_adjust()函數可以調整子圖之間的間距。這個函數接受多個參數,如leftrightbottomtopwspacehspace,分別用于調整圖表的左右邊距、上下邊距以及子圖之間的水平和垂直間距。
  • 保存圖表:使用plt.savefig()函數可以將圖表保存為文件。通過傳遞文件路徑和文件格式(如'png''pdf'等),可以將圖表保存為高質量的圖像文件。

實踐代碼

下面的代碼示例展示了如何調整圖表的大小和布局,并將圖表保存為文件。

import seaborn as sns
import matplotlib.pyplot as plt# 加載示例數據集
tips = pd.read_csv('tips.csv')# 設置圖表大小
plt.figure(figsize=(10, 6))# 創建圖表
sns.scatterplot(x="total_bill", y="tip", data=tips)# 調整子圖間距
plt.subplots_adjust(left=0.1, right=0.9, bottom=0.1, top=0.9, wspace=0.2, hspace=0.2)# 保存圖表
plt.savefig("scatterplot.png")# 顯示圖表
plt.show()

在這里插入圖片描述

1.3 自定義圖例

圖例是圖表中用于解釋不同數據系列或數據點的標記。Seaborn提供了多種方法來自定義圖例,包括更改圖例的位置、樣式和內容,以使其更加符合你的需求。

理論知識

  • 更改圖例位置:使用plt.legend()函數可以更改圖例的位置。通過傳遞loc參數,可以指定圖例在圖表中的位置。例如,loc='upper right'將圖例放置在圖表的右上角。
  • 自定義圖例內容:通過傳遞labels參數,可以自定義圖例中的標簽。這個參數接受一個字符串列表,每個字符串對應圖例中的一個標簽。
  • 調整圖例樣式:使用legend對象的set_title()方法可以設置圖例的標題。通過傳遞一個字符串參數,可以指定圖例標題的文本。此外,還可以通過prop參數來調整圖例標題的字體樣式。

實踐代碼

下面的代碼示例展示了如何自定義圖例的位置、內容和樣式。

import seaborn as sns
import matplotlib.pyplot as plt# 加載示例數據集
tips = pd.read_csv('tips.csv')# 創建圖表
sns.scatterplot(x="total_bill", y="tip", hue="day", data=tips)# 更改圖例位置
plt.legend(loc='upper left')# 自定義圖例內容
plt.legend(labels=['Thursday', 'Friday', 'Saturday', 'Sunday'])# 調整圖例樣式
legend = plt.legend()
legend.set_title('Day of the Week')
plt.setp(legend.get_title(), fontsize='12')# 顯示圖表
plt.show()

在這里插入圖片描述

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

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

相關文章

nano命令使用方法

nano 是 Ubuntu 等 Linux 系統中常用的輕量級文本編輯器,輕量易用,特別適合適合快速編輯配置文件、腳本等。以下是其核心使用方法:一、基本操作:打開 / 創建文件bash# 打開已存在文件(若文件不存在則創建) …

C#_gRPC

6.3 gRPC:高性能跨語言服務間通信 gRPC是一個高性能、開源、通用的RPC(Remote Procedure Call)框架,由Google開發并基于其多年的內部使用經驗(Stubby)。它現在是Cloud Native Computing Foundation&#xf…

Ubuntu 多版本 librealsense 與 realsense_ros 編譯并兼容 L515 等設備

這篇博客用來記錄如何在 Ubuntu 下編譯多個版本的 librealsense 并使用 L515 和 D435i 等設備。核心在于 L515 這款設備已經停止維護,直接安裝的方案不支持這個設備,只支持 D435i 等后期產品。如果想要同時使用新老的 realsense 產品,需要單獨…

Java 泛型 T、E、K、V、?、S、U、V

目錄 一、概述 二、為什么使用泛型 三、常見泛型類型參數的含義與用途 示例一:使用 T 定義泛型類 示例二:使用 E 表示集合元素 示例三:使用 K 和 V 表示鍵值對 示例四:使用 ? 通配符處理未知類型 四、通配符 ? 的擴展用…

1688拍立淘接口數據全面解析詳細說明(item_search_img)

一、接口概述 1688拍立淘接口是阿里巴巴1688平臺提供的基于圖像識別的商品搜索服務,允許開發者通過上傳商品圖片來搜索平臺上的同款或相似商品。該接口的主要功能是接收用戶上傳的圖片(或圖片的相關信息),并通過1688平臺的圖像識…

【Docker項目實戰】使用Docker部署輕量級LetsMarkdown文本編輯器

【Docker項目實戰】使用Docker部署輕量級Markdown文本編輯器一、LetsMarkdown介紹1.1 LetsMarkdown簡介1.2 主要特點二、本次實踐介紹2.1 本地環境規劃2.2 本次實踐介紹三、本地環境檢查3.1 檢查Docker服務狀態3.2 檢查Docker版本3.3檢查docker compose 版本四、拉取容器鏡像五…

Node.js自研ORM框架深度解析與實踐

Node.js自研ORM框架深度解析與實踐 前言 在現代Web開發中,對象關系映射(ORM)框架扮演著至關重要的角色。它們為開發者提供了一層抽象,使得數據庫操作變得更加簡單和直觀。本文將深入解析一個基于Node.js和MySQL的自研ORM框架&…

匯總圖片拖進ps中 photoshop同時打開幾個文件夾

如果你有許多文件夾,你想選中一部分,然后把里面的圖片全部拖進photoshop當中,但是文件夾又不能直接拖進去,那么你可以嘗試使用一下這個工具,首先測試一下直接拖文件夾。選中你要處理的文件夾,直接拖進photo…

mysql 5.7 查詢運行時間較長的sql

開發過程遇到sql 執行時間長,又取消不了的情況 可使用 kill query ID 殺死進程獲取正在運行的sqlSELECT ID, -- 進程ID:MySQL服務器分配給每個連接的唯一標識符,用于區分不同的客戶端連接USER, …

MongoDB 從入門到實踐:全面掌握文檔型 NoSQL 數據庫核心操作

目錄 一、MongoDB 基礎準備 1. 官方資源獲取 2. 安裝步驟解析 二、MongoDB 核心指令詳解 1. 數據庫操作指令 2. 集合操作指令 3. 文檔操作指令 查詢文檔 插入文檔 修改文檔 刪除文檔 三、進階查詢技巧 1. 運算符的靈活運用 比較運算符 邏輯運算符 范圍與成員運算…

CVPR2025丨遙感領域,全模態與秒超高清遙感建模重大突破,性能提升創新點

關注gongzhonghao【CVPR頂會精選】剛入門遙感建模時,總好奇別人為什么總能提出新方法?慢慢摸索后才發現,創新點并不是硬憋出來的,而是要從數據特性、傳感器差異、地物細節以及環境變化中發現機會。不同波段、不同分辨率、不同時相…

HTML5詳篇

前端三劍客 前端三劍客是指HTML、CSS和JavaScript: HTML超文本標記語言(Hyper Text Markup Language):簡單理解描述網頁結構的;用于網頁內容的語言。它通過使用不同的HTML標簽來定義頁面中的各種元素,例如標題、段落、圖像、鏈接等【無羽毛的小鳥模型】 CSS層疊樣式表(…

【Transient-Free 3DGS】delayed densification + coarse to fine增加GS的魯棒性

25年最新連接去除場景瞬態對象工程與3DGS的pipeline,改進了spotlesssplats,已開源: [2506.02751] RobustSplat: Decoupling Densification and Dynamics for Transient-Free 3DGSAbstract page for arXiv paper 2506.02751: RobustSplat: De…

【MySQL】CRUD基礎詳解

CRUD基礎前言:數據庫的層級結構一、新增(Create)1. 單行數據 全列插入2. 單行數據的簡寫插入3. 指定列插入4. 多行數據插入二、查詢(Retrieve)1. 全列查詢2. 指定列查詢3. 查詢結果為表達式(1)…

互聯網大廠Java求職面試實錄:核心技術棧與業務場景解析

互聯網大廠Java求職面試實錄:核心技術棧與業務場景解析 面試場景設定 本文通過一個嚴肅的面試官和搞笑的水貨程序員大面條之間的對話,模擬互聯網大廠Java崗位的技術面試過程。面試涵蓋Java SE、Spring生態、數據庫、微服務、緩存、安全、消息隊列、AI等多…

response對象的elapsed屬性

在Python的requests庫中,當我們發送一個請求后,會得到一個Response對象,這個對象有一個elapsed屬性,它返回一個timedelta對象,表示從發送請求到收到響應所經過的時間。response.elapsed.total_seconds() 是 Python req…

【ansible】5.在受管主機部署文件和Jinja2模板

1.Ansible 中,如何用模塊創建一個文件并設置權限644并設置SELinux類型,如何從受管主機中刪除文件?使用ansible.builtin集合中的 file 模塊,添加state:touch 創建文件,mode:‘0644’ 設置權限&am…

雪花算法數據庫主鍵

雪花算法(Snowflake)作為一種分布式 ID 生成方案,在分布式系統中具有顯著優勢,能夠解決多個關鍵問題。以下是它的核心好處及主要應用場景:雪花算法的核心好處全局唯一性:通過時間戳、機器 ID、數據中心 ID …

C/C++ 頭文件命名約定

有的時候&#xff0c;在C的代碼中&#xff0c;可以看到有如下的頭文件引用的代碼: #include <iostream> #include <unistd.h> #include <csignal>其中有一些是引用了.h文件&#xff0c;另外一些是引用了模塊式的比如iostream和csignal&#xff0c;那么為什么…

異質結3.0時代的降本提效革命:捷造科技設備技術創新與產業拐點分析

光伏產業經歷了從PERC到TOPCon和異質結&#xff08;HJT&#xff09;的技術迭代&#xff0c;而2025年將成為異質結技術規模化應用的關鍵轉折點。捷造科技通過一系列突破性技術創新&#xff0c;將GW級異質結整線設備價格降至2億元&#xff0c;較行業平均水平降低約40%&#xff0c…