一周學會Matplotlib3 Python 數據可視化-繪制面積圖(Area)

鋒哥原創的Matplotlib3 Python數據可視化視頻教程:

2026版 Matplotlib3 Python 數據可視化 視頻教程(無廢話版) 玩命更新中~_嗶哩嗶哩_bilibili

課程介紹

本課程講解利用python進行數據可視化 科研繪圖-Matplotlib,學習Matplotlib圖形參數基本設置,繪圖參數及主要函數,以及Matplotlib基礎繪圖,和Matplotlib高級繪圖。

繪制面積圖(Area)

面積圖是數據可視化中常用的圖表類型,用于展示數據隨時間或類別的變化趨勢,特別適合表現多個數據系列的累積關系。下面我將詳細介紹如何使用 Matplotlib 繪制面積圖。

面積圖其實是特殊的折線圖,只不過是通過plt.fill_between()方法,填充兩條曲線之間區域。

plt.fill_between() 是 Matplotlib 中用于填充兩條曲線之間區域的函數,常用于可視化置信區間、誤差范圍或閾值區域。以下是詳細解析:

plt.fill_between(x,          # x軸坐標值(數組)y1,         # 第一條曲線的y值(數組)y2=0,       # 第二條曲線的y值(數組或標量,默認為0)where=None, # 條件篩選(布爾數組)interpolate=False, # 是否在交點插值step=None,  # 階梯填充模式('pre'/'post'/'mid')alpha=None, # 透明度(0-1)color=None, # 填充顏色**kwargs    # 其他Polygon屬性(如hatch, edgecolor)
)

我們來看一個基本示例:

import matplotlib.pyplot as plt
import numpy as np# 設置中文字體支持
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用來正常顯示中文標簽
plt.rcParams['axes.unicode_minus'] = False  # 用來正常顯示負號# 創建數據
x = np.linspace(0, 10, 100)
y = np.sin(x) * 0.5 + 1  # 正弦波偏移# 創建圖形
plt.figure(figsize=(10, 6))
plt.fill_between(x, y, color="skyblue", alpha=0.4)  # 填充區域
plt.plot(x, y, color="Slateblue", alpha=0.6, linewidth=2)  # 繪制線條# 添加標題和標簽
plt.title('基本面積圖: 正弦波', fontsize=14, fontweight='bold')
plt.xlabel('時間', fontsize=12)
plt.ylabel('數值', fontsize=12)
plt.grid(True, linestyle='--', alpha=0.7)plt.tight_layout()
plt.show()

我們也可以用plt.stackplot()方法來繪制堆疊面積圖,堆疊面積圖用于展示多個數據系列的累積關系,每個系列堆疊在前一個系列之上。

plt.stackplot() 是 Matplotlib 中用于創建堆疊面積圖的函數,特別適合展示多個數據序列隨時間的累積變化以及各部分的比例關系。以下是詳細解析:

plt.stackplot(x,                  # x軸坐標值(數組)*args,              # 多個y值序列(每個序列代表一個堆疊層)labels=(),          # 各層的標簽(用于圖例)colors=None,        # 各層的顏色baseline='zero',    # 基線模式('zero', 'sym', 'wiggle', 'weighted_wiggle')**kwargs            # 其他Polygon屬性(alpha, edgecolor等)
)

我們來看一個堆疊面積示例:

import matplotlib.pyplot as plt
import numpy as np# 設置中文字體支持
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用來正常顯示中文標簽
plt.rcParams['axes.unicode_minus'] = False  # 用來正常顯示負號# 創建數據
x = np.arange(0, 10, 0.1)
y1 = np.sin(x) * 0.5 + 1
y2 = np.cos(x) * 0.3 + 0.5
y3 = np.exp(-x / 5) * 1.5# 創建圖形
plt.figure(figsize=(10, 6))# 使用stackplot繪制堆疊面積圖
plt.stackplot(x, y1, y2, y3,colors=['#FF9999', '#66B2FF', '#99FF99'],alpha=0.8,labels=['產品A', '產品B', '產品C'])# 添加標題和標簽
plt.title('產品銷售額堆疊面積圖', fontsize=14, fontweight='bold')
plt.xlabel('季度', fontsize=12)
plt.ylabel('銷售額 (百萬)', fontsize=12)
plt.legend(loc='upper left', fontsize=10)
plt.grid(True, linestyle='--', alpha=0.5)plt.tight_layout()
plt.show()

運行效果:

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

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

相關文章

北京JAVA基礎面試30天打卡11

1.索引創建注意事項 適合的場景 1.頻繁使用where語句查詢的字段 2.關聯字段需要建立索 3.如果不創建索引,那么在連接的過程中,每個值都會進行一次全表掃描 4.分組和排序字段可以建立索引因為索引天生就是有序的,在分組和排序時優勢不言而喻 5…

vscode無法檢測到typescript環境解決辦法

有一個vitereacttypescript項目,在工作電腦上一切正常。但是,在我家里的電腦運行,始終無法檢測到typescript環境。即使出現錯誤的ts語法,也不會有報錯提示,效果如下:我故意將一個string類型,傳入…

【MCP開發】Nodejs+Typescript+pnpm+Studio搭建Mcp服務

MCP服務支持兩種協議,Studio和SSE/HTTP,目前官方提供的SDK有各種語言。 開發方式有以下幾種: 編程語言MCP命令協議發布方式PythonuvxSTUDIOpypiPython遠程調用SSE服務器部署NodejspnpmSTUDIOpnpmNodejs遠程調用SSE服務器部署… 一、初始化項…

vscode使用keil5出現變量跳轉不了和搜索全局不了

vscode使用keil5出現變量跳轉不了,或者未包含文件,或者未全局檢索; 參考如下文章后還會出現; 為什么vscode搜索欄只搜索已經打開的文件_vscode全局搜索只能搜當前文件-CSDN博客 在機緣巧合之下發現如下解決方式: 下載…

命名空間——網絡(net)

命名空間——網絡(net) 一、網絡命名空間:每個都是獨立的“網絡房間” 想象你的電腦是一棟大樓,每個網絡命名空間就是大樓里的一個“獨立房間”: 每個房間里有自己的“網線接口”(網卡)、“門牌…

一文讀懂16英寸筆記本的實際尺寸與最佳應用場景

當您搜索"16寸筆記本電腦長寬"時,內心真正在問的是什么?是背包能否容納?桌面空間是否足夠?還是期待屏幕尺寸與便攜性的完美平衡?這個看似簡單的尺寸數字背后,凝結著計算機制造商對用戶體驗的深刻…

Android Studio中創建Git分支

做一些Android項目時,有時候想要做一些實驗性的修改,這個實驗可能需要很多步驟,所以不是一時半會能完成的,這就需要在實驗的過程中不斷修改代碼,且要提交代碼,方便回滾或比較差異,但是既然是實驗…

內存可見性和偽共享問題

文章目錄什么是內存可見性問題為什么會出現可見性問題解決可見性問題的方法1. 使用volatile關鍵字2. 使用synchronized3. 使用java.util.concurrent包下的原子類什么是偽共享問題CPU緩存行偽共享的危害解決偽共享的方法1. 緩存行填充2. 使用Contended注解(JDK 8&…

Spring MVC 九大組件源碼深度剖析(三):ThemeResolver - 動態換膚的奧秘

文章目錄一、主題機制的核心價值二、核心接口設計三、四大實現類源碼解析1. FixedThemeResolver(固定主題策略)2. CookieThemeResolver(Cookie存儲策略)3. SessionThemeResolver(Session存儲策略)4. Abstra…

一、Docker本地安裝

((這里引用知乎上大佬的說法:https://www.zhihu.com/question/48174633 服務器虛擬化解決的核心問題是資源調配,而容器解決的核心問題是應用開發、測試和部署。 一、參考帖子 Ubuntu 的 |Docker 文檔 【docker】ubuntu完全卸載docker及再次安裝_ubuntu…

LeetCode 分類刷題:2962. 統計最大元素出現至少 K 次的子數組

題目給你一個整數數組 nums 和一個 正整數 k 。請你統計有多少滿足 「 nums 中的 最大 元素」至少出現 k 次的子數組,并返回滿足這一條件的子數組的數目。子數組是數組中的一個連續元素序列。示例 1:輸入:nums [1,3,2,3,3], k 2 輸出&#…

10分鐘掌握swift

整理一個 10分鐘掌握 Swift 的精華指南,用一個 Demo 串聯 Swift 的核心語法、數據結構、函數、類/結構體和閉包,讓你快速入門。1?? 基礎語法與變量import Foundation // 引入基礎庫// 變量和常量 var name: String "Alice" // 可變 let…

【完整源碼+數據集+部署教程】食品分類與實例分割系統源碼和數據集:改進yolo11-AggregatedAttention

背景意義 研究背景與意義 隨著全球食品產業的快速發展,食品安全和質量控制日益成為社會關注的焦點。食品分類與實例分割技術的應用,能夠有效提升食品識別的準確性和效率,為食品監管、營養分析以及智能餐飲等領域提供重要支持。傳統的食品識別…

C# 中的N+1問題

目錄 含義 影響 避免方法 1. 立即加載(Eager Loading) 2. 顯式加載(Explicit Loading) 3. 投影(Projection) 4. 批處理查詢 5. 禁用延遲加載 含義 N1 問題 是 ORM(對象關系映射&#x…

國內多光譜相機做得好的廠家有哪些?-多光譜相機品牌廠家

多光譜相機是一種能夠同時捕捉多個特定波段的光譜信息,這些波段覆蓋可見光、近紅外以及短波紅外等區域。廣泛應用于遙感、農業、環境監測、工業檢測、安防等領域。近年來,我國在多光譜技術領域取得了顯著進步,涌現出一批技術實力強、產品性能…

如何用外部電腦訪問本地網頁?

之前本來說用內網穿透工具來查看完成這個工具,結果感覺各種不符合心意,突然發現有更簡單的方法。如果想讓兩臺電腦在 同一局域網 內都能訪問運行在 http://localhost:5174/ 上的項目,而不需要使用內網穿透工具,可以通過以下方法實…

PromptPilot — AI 自動化任務的下一個環節

作者:陳大魚頭 github:https://github.com/KRISACHAN 郵箱:chenjinwen77@gmail.com PromptPilot 體驗地址:https://promptpilot.volcengine.com/ 前言 如果大家有關注 AI 相關新聞的話,一定會知道在 2025 年 6 月 11 日火山引擎 FORCE 原動力大會上,豆包大模型 1.6 系列…

[Responsive theme color] 動態更新 | CSS變量+JS操控 | 移動端-漢堡菜單 | 實現平滑滾動

第3章:CSS變量操控 歡迎回來🐻??? 通過前兩章,我們掌握了 動態主題定制 的交互邏輯,以及 色彩工具函數 如何實現色值格式轉換。 本章將揭示技術拼圖的最后一塊:CSS變量動態操控,解析JavaScript如何實…

數學建模 15 邏輯回歸與隨機森林

邏輯回歸(用于分類)用途:通過已有數據,計算出線性方程的參數w后,可以用于預測某一個物品屬于某一類的概率,[0,1];求解思想:邏輯回歸通過最大似然估計(Maximum Likelihood Estimation…

衡石使用指南嵌入式場景實踐之儀表盤嵌入

應用展示交互 應用集市展示應用時會與儀表盤、圖表進行交互操作,主要包括去分析、保存當前過濾快照、字段設置、刷新、全屏、嵌入、導出等功能。 保存當前過濾快照 儀表盤展示數據時往往使用過濾器來查看不同場景下的分析數據。用戶從一種場景切換到另一種場景&a…