繪圖庫 Matplotlib Search

關于Pathon的繪圖庫的認識和基本操作的學習 這里學習了兩款常用便捷的繪圖庫去學習使用

Matplotlib

介紹

是最受歡迎的一種數據可視化包 是常用的2D繪圖庫 一般常于Numpy和Pandas使用 是數據分析中非常重要的工具

可以自定義XY軸 繪制線形圖 柱狀圖 直方圖 密度圖 散點圖 更清晰的展示數據

?基本繪圖

plt.plot(x,y,ls,lw,lable,color,marker)

x x 為繪制做坐標點 ls 為線型linestyle lw為線寬linewidth lable為標簽文本內容 color為顏色 marker為標記

ls- 實線? : 點虛線? --破折線? -.點劃線
colorr 紅 g 綠 y 黃 k 黑 w 白
marker. 點? ,像素點 o 實心圓 v 下三角 * 星星

# 繪制直線圖
import matplotlib.pyplot as plt
x = [1,2,3,4,5]
y = [2,4,6,8,10]
plt.plot(x,y,color="r",ls="--")
plt.show()

使用

設置網格

import numpy as np # 設置網格
plt.figure(figsize=(6,3),dpi=100)
x = np.linspace(0,2*np.pi)
y = np.sin(x)
plt.plot(x,y)
plt.grid() # 設置網格

繪制多線

import numpy as py # 繪制多條線 設置畫布背景
plt.figure(figsize=(6,3),dpi=100) # 設置畫布的長寬和分辨率
x = np.linspace(0,2*np.pi)
y = np.sin(x)
z = np.cos(x)
plt.plot(x,y)
# plt.show() # 立刻繪圖 只繪制xy的圖像
plt.plot(x,z)

# 創建數據
x = np.linspace(0,10,100)
y1 = np.sin(x)
y2 = np.cos(x)# 繪制圖形
plt.plot(x,y1,label='Sin Function',color="y",ls="-.") # 第一個數據系列
plt.plot(x,y2,label='Cos Function')# 顯示圖例
plt.legend()# 顯示圖形
plt.show()

?多圖布局

#%%
%matplotlib inline
# 若不顯示圖片 則加上
import matplotlib.pyplot as plt
plt.rcParams['front.sans-serif'] = ['SimHei'] # 用于正常顯示中文標簽
plt.rcParams['axes.unicode_minus'] = False # 用于正常顯示負號
#%%
# 繪制直線圖
import matplotlib.pyplot as plt
x = [1,2,3,4,5]
y = [2,4,6,8,10]
plt.plot(x,y,color="r",ls="--")
plt.show()
#%%
import numpy as np # 設置網格
plt.figure(figsize=(6,3),dpi=100)
x = np.linspace(0,2*np.pi)
y = np.sin(x)
plt.plot(x,y)
plt.grid() # 設置網格
#%%
import numpy as py # 繪制多條線 設置畫布背景
plt.figure(figsize=(6,3),dpi=100) # 設置畫布的長寬和分辨率
x = np.linspace(0,2*np.pi)
y = np.sin(x)
z = np.cos(x)
plt.plot(x,y)
# plt.show() # 立刻繪圖
plt.plot(x,z)
#%%
# 多圖布局
import matplotlib.pyplot as plt
import numpy as np# 創建數據
x = np.linspace(0,10,100)
y1 = np.sin(x)
y2 = np.cos(x)# 創建一個2*2的子圖布局
plt.figure(figsize=(10,6)) # 設置整個圖的大小# 第一個子圖
plt.subplot(2,2,1) # 第一個子圖位于2*2布局的第一個位置
plt.plot(x,y1,'r-') # 繪制曲線
plt.title('Sin Function') # 設置標題# 第二個子圖
plt.subplot(2,2,2) # 第二個子圖的第二個位置
plt.plot(x,y2,'b-') # 設置cos曲線
plt.title('Cos Function')# 第三個子圖
plt.subplot(2,2,3)
plt.plot(x,y1 + y2,'h-')
plt.title('Sin + Cos Function')# 第四個子圖
plt.subplot(2,2,4)
plt.plot(x,y1 - y2,'r-')
plt.title('Sin - Cos Function')# 調整子圖之間的間距
plt.tight_layout()# 顯示圖形
plt.show()

圖形嵌套

# 圖形嵌套
import numpy as np
import matplotlib.pyplot as plt# 創建數據
x = np.linspace(0,10,100)
y = np.sin(x)# 創建外層圖形
fig = plt.figure(figsize=(8,6))# 在外層圖形中創建嵌套的子圖
plt.plot(x,y,'b-')
plt.title('Main Plot')# 創建嵌套的子圖
left,bottom, width,height = [0.4,0.5,0.25,0.25]
axes = fig.add_axes([left,bottom,width,height]) # 創建一個新的坐標軸
axes.plot(x,y,'r-',label = 'sin Function (Inset)')
plt.title('Inset Plot')# 顯示圖例
plt.legend()# 顯示圖形
plt.show()

調整刻度和標簽

import numpy as np
import matplotlib.pyplot as plt# 創建數據
x = np.linspace(0,10,100)
y = np.sin(x)# 繪制圖形
plt.plot(x,y,label = 'Sin Function')
plt.title('修改刻度')# 修改X軸和Y軸的刻度
plt.xticks(np.arange(0,11,1)) # 設置刻度和步長
plt.yticks([-1,0,1])# 添加標簽
plt.xlabel('x')
plt.ylabel('y')plt.legend()
plt.show()

?保存圖片

import numpy as np
import matplotlib.pyplot as pltx = np.linspace(0,10,100)
y = np.sin(x)plt.plot(x,y,label = 'Sin Function')# 標簽
plt.title('Plot Example')
plt.xticks(np.arange(0,11,1))
plt.yticks([-1,0,1])
plt.legend()plt.savefig('plot_example.png')
plt.show()

繪制折線圖

plt.figure(figsize=(10,6))x = df.index # 獲取月份作為x軸數據
y1 = df['語文']plt.plot(x,y1,marker='o',color='r',ls='--',label='語文')plt.title('張三成績月變化情況')
plt.xlabel('月份')
plt.ylabel('分數')
plt.legend()
plt.grid(True) # 網格線plt.xticks(rotation = 45) # x軸刻度標簽的角度旋轉為45度
plt.tight_layout()
plt.show()

多個柱狀圖

# 繪制多個柱狀圖
import numpy as np
import matplotlib.pyplot as plt# 讀取 Excel 表格數據
excel_file = '張三成績.xlsx'
df = pd.read_excel(excel_file)# 繪制圖像
plt.figure(figsize=(10,6))months = df.index
x = range(len(months))# 設置柱狀圖的寬度
bar_width = 0.25plt.bar(x,df['語文'],width=bar_width,align='center',label='語文',color='skyblue')
plt.bar([i + bar_width for i in x],df['英語'],width=bar_width,align='center',label='數學',color='r')
plt.bar([i + 2 * bar_width for i in x],df['英語'],width=bar_width,align='center',color='b')plt.title('成績月變化情況')
plt.xlabel('月份')
plt.ylabel('分數')# 設置X軸刻度標簽
plt.legend()# 顯示圖形
plt.tight_layout()
plt.show()

繪制散點圖

import numpy as np
import matplotlib.pyplot as pltnp.random.seed(0)
height = np.random.normal(loc=170,scale=10, size=100)
weight = 0.6 * height + np.random.normal(loc=0,scale=5,size=100)plt.figure(figsize=(10,6))
plt.scatter(height,weight,color='r',alpha=0.7)plt.title('身高與體重關系散點圖')
plt.xlabel('身高')
plt.ylabel('體重')plt.grid(True)
plt.tight_layout()
plt.show()

繪制餅圖

import numpy as np
import matplotlib.pyplot as pltexcel_file = '張三成績.xlsx'
df = pd.read_excel(excel_file)plt.figure(figsize=(10,6))plt.pie(df['語文'],startangle=90) # startangle 繪制的起始位置plt.title('成績情況')plt.show()


Search

介紹

? ? 在Matplotlib的基礎上進行了更高級的封裝 使用極簡的代碼做出具有分析價值且十分美觀的圖形 而且也支持Pyhon的其他庫?

? ? 可以繪制 折線圖 散點圖(分類圖)分類分布圖 分類統計圖 線性回歸圖 熱力圖

風格設置

white

純白?

whitegrid

帶有網格的純白

dark

灰色

darkgrid

帶網格灰色
ticks白色 軸上有刻度條?

函數參數使用

函數類型函數名稱主要參數使用場景示例代碼
??分布類??displot()
(通用分布圖)
kind: 指定類型(hist/kde/ecdf)
data: 數據集
x/y: 變量
hue: 分組變量
rug: 顯示分布密度
單變量分布分析
數據分布形狀探索
sns.displot(data=tips, x="total_bill", kind="kde", hue="time")
??分布類??histplot()
(直方圖)
bins: 箱數
kde: 疊加密度線
stat: 統計方式(count/density)
multiple: 分組疊放方式
數值變量分布探索
統計頻次分析
sns.histplot(data=tips, x="tip", bins=20, kde=True, hue="sex")
??關系類??scatterplot()
(散點圖)
x/y: 變量坐標
size: 點大小
style: 點形狀
alpha: 透明度
palette: 色板
雙變量關系探索
相關性可視化
sns.scatterplot(data=iris, x="sepal_length", y="petal_length", hue="species", size="petal_width")
??關系類??lineplot()
(折線圖)
sort: 是否排序
markers: 顯示標記
ci: 置信區間
style: 線型分組
時間趨勢分析
序列變化對比
sns.lineplot(data=flights, x="year", y="passengers", hue="month", ci=None)
??分類類??barplot()
(條形圖)
estimator: 聚合函數(mean/sum)
ci: 置信區間
order: 類目順序
capsize: 誤差線帽寬
分類變量聚合比較
均值差異分析
sns.barplot(data=titanic, x="class", y="fare", hue="sex", estimator=np.mean)
??分類類??boxplot()
(箱線圖)
orient: 方向(v/h)
notch: 凹口
fliersize: 離群點大小
width: 寬度
數據分布對比
異常值檢測
sns.boxplot(data=penguins, x="species", y="body_mass_g", hue="sex", notch=True)
??分類類??violinplot()
(小提琴圖)
inner: 內部圖(quartiles/stick)
split: 分組合并
bw: 核密度帶寬
比較數據分布形狀
概率密度可視化
sns.violinplot(data=penguins, x="island", y="bill_length", hue="sex", inner="stick", split=True)
??矩陣類??heatmap()
(熱力圖)
annot: 顯示數值
fmt: 數值格式
cbar: 顯示色標
linewidths: 網格線寬
vmin/vmax: 值域范圍
相關性分析
交叉表可視化
sns.heatmap(data=corr_matrix, annot=True, fmt=".2f", cmap="coolwarm")
??矩陣類??clustermap()
(聚類熱力圖)
row_colors: 行標簽色
method: 聚類方法
metric: 距離算法
z_score: 標準化
聚類分析
分組可視化
sns.clustermap(data=iris, method="ward", z_score=0, cmap="viridis")
??網格類??FacetGrid()
(分面網格)
col/row: 分面維度
col_wrap: 換行數
height/aspect: 子圖尺寸
share{x/y}: 坐標軸共享
多維度分析
數據集子集探索
g = sns.FacetGrid(tips, col="time", row="smoker")<br>g.map(sns.scatterplot, "total_bill", "tip")
??網格類??pairplot()
(變量關系矩陣)
diag_kind: 對角線圖類型
plot_kws: 子圖參數
corner: 只顯示下三角
kind: 關系類型(scatter/kde)
多變量關系探索
數據集快速概覽
sns.pairplot(data=iris, hue="species", diag_kind="hist", corner=True)

核心參數

參數描述示例值
data輸入數據源DataFrame/tables/arrays
x/y坐標軸變量列名 (如:"total_bill")
hue分組變量分類列名 (如:"sex")
palette調色板"viridis", "mako", "Set2"
size尺寸變量連續變量列名
alpha透明度0-1值 (0.5表示半透明)
legend圖例"auto"(默認)/True/False
axmatplotlib軸對象用于在已有圖形上繪制

使用

折線圖(使用庫自帶的測試數據集)

import seaborn as sns
test_data = sns.load_dataset('fmri')
print(test_data.head())sns.relplot(x="timepoint",y="signal",kind="line",data=test_data)

折線圖(事件區分)

import seaborn as sns
test_data = sns.load_dataset('fmri')
print(test_data.head())sns.relplot(x="timepoint",y="signal",kind="line",hue="event",data=test_data)

分圖展示

import seaborn as sns
test_data = sns.load_dataset('fmri')
print(test_data.head())sns.relplot(x="timepoint",y="signal",kind="line",hue="event",col="event",data=test_data)

散點圖(分類圖)

titanic = sns.load_dataset('titanic')
sns.relplot(x="age",y="fare",data=titanic)

sns.catplot(x="pclass",y="fare",data=titanic) # 用作做分類

箱形圖

sns.boxplot(x="pclass",y="fare",data=titanic)

條形圖

sns.barplot(x="pclass",y="fare",data=titanic) # 條形圖

計數圖

sns.countplot(x="pclass",data=titanic)
sns.set_style("whitegrid") # 繪圖風格設置

調色板

# 調色板
from matplotlib import pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei'] # 用于正常顯示中文標簽
plt.rcParams['axes.unicode_minus'] = False  # 用于正常顯示負號
plt.figure(figsize=(10,10))
planets = sns.load_dataset('planets')
sns.barplot(x="year",y="number",data=planets,palette="rainbow")

?線性關系圖

sns.regplot(x="age",y="fare",data=titanic)

熱力圖

# 熱力圖
flights = sns.load_dataset('flights')# 將長格式轉換為寬格式數據,以便于繪制熱力圖
f = flights.pivot(index="month",columns="year",values="passengers")# 繪制熱力圖
plt.figure(figsize=(10,10))
sns.heatmap(f,annot=True,fmt='d',cmap='YlGnBu')
plt.title("Flights Passenger Count By Year ans Month")
plt.xlabel("Year")
plt.ylabel("Month")
plt.show()

相關系數矩陣的熱力圖

plt.figure(figsize=(10,10))
sns.heatmap(f.corr(),annot=True,cmap='coolwarm')


學習時間? 2025.07.20

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

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

相關文章

Docker詳解及實戰

&#x1f389; Docker 簡介和安裝 - Docker 快速入門 Docker 簡介 Docker是一個開源的平臺&#xff0c;用于開發、交付和運行應用程序。它能夠在Windows&#xff0c;macOS&#xff0c;Linux計算機上運行&#xff0c;并將某一應用程序及其依賴項打包至一個容器中&#xff0c;這…

嵌入式學習的第三十三天-進程間通信-UDP

一、網絡1.定義不同主機間進程通信主機間在硬件層面互聯互通主機在軟件層面互聯互通2.國際網絡體系結構OSI模型&#xff08;7層&#xff09;: open system interconnect -------理論模型------定義了網絡通信中不同層的協議1977 國際標準化組織各種不同體系結構的計算機能在世…

4、Spring AI_DeepSeek模型_結構化輸出

一、前言 Spring AI 提供跨 AI 供應商&#xff08;如 OpenAI、Hugging Face 等&#xff09;的一致性 API, 通過分裝的ChatModel或ChatClient即可輕松調動LLM進行流式或非流式對話。 本專欄主要圍繞著通過OpenAI兼容接口調用各種大語言模型展開學習&#xff08;因為大部分模型…

Spring Data Redis 從入門到精通:原理與實戰指南

一、Redis 基礎概念 Redis&#xff08;Remote Dictionary Server&#xff09;是開源的內存鍵值對數據庫&#xff0c;以高性能著稱。它支持多種數據結構&#xff08;String、Hash、List、Set、ZSet&#xff09;&#xff0c;并提供持久化機制&#xff08;RDB、AOF&#xff09;。 …

免費版酒店押金原路退回系統——仙盟創夢IDE

項目介紹?東方仙盟開源酒店押金管理系統是一款面向中小型酒店、民宿、客棧的輕量級前臺管理工具&#xff0c;專注于簡化房態管理、訂單處理和押金跟蹤流程。作為完全開源的解決方案&#xff0c;它無需依賴任何第三方服務&#xff0c;所有數據存儲在本地瀏覽器中&#xff0c;確…

10. isaacsim4.2教程-RTX Lidar 傳感器

1. 前言RTX Lidar 傳感器Isaac Sim的RTX或光線追蹤Lidar支持通過JSON配置文件設置固態和旋轉Lidar配置。每個RTX傳感器必須附加到自己的視口或渲染產品&#xff0c;以確保正確模擬。重要提示&#xff1a; 在運行RTX Lidar仿真時&#xff0c;如果你在Isaac Sim UI中停靠窗口&…

QT6 源,七章對話框與多窗體(14)棧式窗體 QStackedWidget:本類里代碼很少。舉例,以及源代碼帶注釋。

&#xff08;1&#xff09;這不是本章節要用到的窗體組件&#xff0c;只是跟著標簽窗體 QTabWidget 一起學了。這也是 QT 的 UI 界面里的最后幾個容器了。而且本類也很簡單。就了解一下它。 本類的繼承關系如下 &#xff1a; UI 設計界面 &#xff1a;運行效果 &#xff1a;&…

魔百和M401H_國科GK6323V100C_安卓9_不分地區免拆卡刷固件包

魔百和M401H_國科GK6323V100C_安卓9_不分地區免拆卡刷固件包刷機說明&#xff1a;1&#xff0c;進機頂盒設置&#xff08;密碼10086&#xff09;&#xff0c;在其他里&#xff0c;一直按左鍵約32下&#xff0c;打開調試模式2&#xff0c;進網絡設置&#xff0c;查看IP地址。3&a…

MySQL基礎02

一. 函數在 MySQL 中&#xff0c;函數是用于對數據進行特定處理或計算的工具&#xff0c;根據作用范圍和返回結果的不同&#xff0c;主要分為單行函數和聚合函數&#xff08;又稱分組函數&#xff09;。以下是詳細介紹&#xff1a;1.單行函數單行函數對每一行數據單獨處理&…

LabVIEW 視覺檢測SIM卡槽

針對SIM 卡槽生產中人工檢測效率低、漏檢誤檢率高的問題&#xff0c;設計了基于 LabVIEW 機器視覺的缺陷檢測系統。該系統通過光學采集與圖像處理算法&#xff0c;實現對卡槽引腳折彎、變形、漏銅等缺陷的自動檢測&#xff0c;誤報率為 0&#xff0c;平均檢測時間小于 750ms&am…

RocketMQ5.3.1的安裝

1、下載安裝 RocketMQ 的安裝包分為兩種&#xff0c;二進制包和源碼包。1 下載 Apache RocketMQ 5.3.1的源碼包后上傳到linux https://dist.apache.org/repos/dist/release/rocketmq/5.3.1/rocketmq-all-5.3.1-source-release.zip2 解壓編譯 $ unzip rocketmq-all-5.3.1-source…

FunASR實時多人對話語音識別、分析、端點檢測

核心功能&#xff1a;FunASR是一個基礎語音識別工具包&#xff0c;提供多種功能&#xff0c;包括語音識別&#xff08;ASR&#xff09;、語音端點檢測&#xff08;VAD&#xff09;、標點恢復、語言模型、說話人驗證、說話人分離和多人對話語音識別等。FunASR提供了便捷的腳本和…

opencv--day01--opencv基礎知識及基礎操作

文章目錄前言一、opencv基礎知識1.opencv相關概念1.1背景1.2特點1.3主要功能與應用1.4.opencv-python2.計算機中的圖像概念2.1圖像表示2.2圖像存儲彩色圖像二、opencv基礎操作1.圖像的讀取2.圖像的顯示3.保存圖像4.創建黑白圖及隨機像素彩圖5. 圖像切片&#xff08;圖片剪裁&am…

如何撤銷Git提交誤操作

要撤銷在主分支上的 git add . 和 git commit 操作&#xff0c;可以按照以下步驟安全回退&#xff1a; 完整回退步驟&#xff1a; # 1. 查看提交歷史&#xff0c;確認要回退的commit git log --oneline# 示例輸出&#xff1a; # d3f4g7h (HEAD -> main) 誤操作提交 # a1b2c3…

React+Three.js實現3D場景壓力/溫度/密度分布可視化

本文介紹了一個基于React和Three.js的3D壓力可視化解決方案&#xff0c;該方案能夠&#xff1a; 加載并渲染3D壓力模型數據 提供動態顏色映射功能&#xff0c;支持多種顏色方案&#xff1a;彩虹-rainbow,冷暖-cooltowarm,黑體-blackbody,灰度-grayscale 實現固定位置的顏色圖…

Go 官方 Elasticsearch 客戶端 v9 快速上手與進階實踐*

1、為什么選擇 go-elasticsearch&#xff1f; 版本同步&#xff1a;與 Elasticsearch 主版本保持一一映射&#xff0c;當前穩定分支為 v9&#xff0c;對應 ES 9.x 系列。(GitHub)完全覆蓋 REST API&#xff1a;所有 HTTP 端點都有等價方法&#xff0c;避免手寫 JSON/HTTP。可插…

`/etc/samba/smb.conf`筆記250720

/etc/samba/smb.conf筆記250720 /etc/samba/smb.conf 是 Samba 服務的核心配置文件&#xff0c;用于實現 Linux/Unix 與 Windows 系統間的文件和打印機共享。以下詳解其結構和常用參數&#xff1a; 配置文件結構 1. 全局設置段 [global] 控制 Samba 服務器的整體行為。 …

Java從入門到精通!第十六天,重點!(多線程和線程池)

一、多線程1&#xff0e;基本概念&#xff08;1&#xff09;程序&#xff08;Program&#xff09;&#xff1a;為了完成特定的任務&#xff0c;用某種計算機語言編寫的一組指令的集合&#xff0c;即指一段靜態的代碼&#xff08;源代碼經編譯之后形成的二進制格式的文件&#x…

軌道交通為什么要有信號系統?

軌道交通為什么要有信號系統&#xff1f;軌道交通信號系統與公路信號系統有什么不同&#xff1f; 在軌道交通中信號系統是必不可少的&#xff0c;其根本原因在于&#xff1a;在軌道交通中已經沒有辦法純靠人力去保證行車安全。 在公路交通中&#xff0c;信號其實是起輔助作用的…

docker 掛載卷

以下是針對您遇到的問題分步解答和解決方案&#xff1a;一、核心結論 ? 可以采用目錄方式&#xff1a;您的命令中的 -v /root/nginx05-vol/:/usr/share/nginx/html/ 是正確的目錄掛載語法。 ? 看不到新文件的可能原因主要集中在 權限問題、緩存機制 或 操作順序錯誤 上。二、…