Python編程進階知識之第五課處理數據(matplotlib)

簡介

????????matplotlib 是 Python 中最流行的數據可視化庫之一,它可以創建各種高質量的圖表。無論是簡單的折線圖,還是復雜的 3D 圖形,matplotlib 都能輕松應對。它提供了類似 MATLAB 的繪圖接口,使得用戶可以非常方便地進行圖表的創建和定制。

?matplotlib 的一些主要特點和功能:

????????豐富的繪圖功能: matplotlib 提供了多種繪圖函數,可以繪制各種類型的圖表,包括線圖、散點圖、柱狀圖、餅圖、等高線圖等。

????????自定義設置: 用戶可以對圖表的各種屬性進行自定義設置,如顏色、線型、標記、標題、坐標軸標簽等。

????????交互式繪圖: matplotlib 支持交互式繪圖,用戶可以使用鼠標對圖表進行縮放、平移等操作。

????????多種輸出格式: 用戶可以將繪制的圖表保存為多種格式的文件,包括 PNG、PDF、SVG 等。

????????與 NumPy 和 Pandas 集成: matplotlib 可以與 NumPy 和 Pandas 庫無縫集成,方便用戶處理和可視化數據。

????????支持多種繪圖風格: matplotlib 提供了多種預定義的繪圖風格,用戶可以根據需要選擇合適的風格。

????????關于 matplotlib了解一點基礎的畫圖方法就行,它就是為我們后面學習機器學習和深度學習提供一個簡單的繪圖工具

1.安裝matplotlib

pip install matplotlib 

????????后面也可以加上清華鏡像園下載更快

pip install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple

2.matplotlib 繪制折線圖

折線圖是最基本的圖表類型之一,用于展示數據隨時間或其他連續變量的變化趨勢。

import matplotlib.pyplot as plt
import numpy as np# 準備數據
x = np.linspace(0, 10, 100)  # 生成0到10之間的100個均勻分布的點
y = np.sin(x)  # 計算正弦值# 創建圖表和子圖
plt.figure(figsize=(8, 4))  # 創建一個大小為8x4英寸的圖表# 繪制圖形
plt.plot(x, y, label='sin(x)')  # 繪制折線圖# 設置圖表屬性
plt.title('Sin Function')  # 設置標題
plt.xlabel('x')  # 設置x軸標簽
plt.ylabel('y')  # 設置y軸標簽
plt.grid(True)  # 顯示網格線
plt.legend()  # 顯示圖例# 顯示圖表
plt.show()

3. matplotlib 繪制散點圖

散點圖用于展示兩個變量之間的關系,每個數據點用一個點表示。

import matplotlib.pyplot as plt
import numpy as np# 準備數據
x = np.random.rand(100)  # 生成100個0到1之間的隨機數
y = np.random.rand(100)
colors = np.random.rand(100)  # 隨機顏色
sizes = 1000 * np.random.rand(100)  # 隨機大小# 繪制散點圖
plt.figure(figsize=(8, 6))
plt.scatter(x, y, c=colors, s=sizes, alpha=0.5)  # alpha表示透明度# 設置圖表屬性
plt.title('Scatter Plot')
plt.xlabel('X')
plt.ylabel('Y')
plt.colorbar()  # 顯示顏色條plt.show()

4.matplotlib 繪制柱狀圖

柱狀圖用于比較不同類別之間的數據差異。

import matplotlib.pyplot as plt
import numpy as np# 準備數據
categories = ['A', 'B', 'C', 'D', 'E']
values = [25, 40, 30, 20, 45]# 繪制柱狀圖
plt.figure(figsize=(10, 6))
plt.bar(categories, values, color='skyblue')# 設置圖表屬性
plt.title('Bar Chart')
plt.xlabel('Categories')
plt.ylabel('Values')plt.show()

5.matplotlib 繪制餅圖

餅圖用于展示數據的比例關系。

import matplotlib.pyplot as plt# 準備數據
labels = ['A', 'B', 'C', 'D']
sizes = [15, 30, 45, 10]
colors = ['gold', 'yellowgreen', 'lightcoral', 'lightskyblue']
explode = (0, 0.1, 0, 0)  # 突出顯示第二個部分# 繪制餅圖
plt.figure(figsize=(8, 8))
plt.pie(sizes, explode=explode, labels=labels, colors=colors,autopct='%1.1f%%', shadow=True, startangle=90)# 設置圖表屬性
plt.axis('equal')  # 使餅圖為正圓形
plt.title('Pie Chart')plt.show()

6.matplotlib 繪制直方圖

直方圖用于展示數據的分布情況。

import matplotlib.pyplot as plt
import numpy as np# 準備數據
data = np.random.randn(1000)  # 生成1000個符合標準正態分布的隨機數# 繪制直方圖
plt.figure(figsize=(10, 6))
plt.hist(data, bins=30, alpha=0.7, color='skyblue')  # bins表示直方圖的箱數# 設置圖表屬性
plt.title('Histogram')
plt.xlabel('Value')
plt.ylabel('Frequency')plt.show()

7.matplotlib 繪制多子圖布局

matplotlib 允許在一個圖表中創建多個子圖,便于比較不同的數據。

使用 subplot 函數

import matplotlib.pyplot as plt
import numpy as np# 生成0到10之間的100個均勻分布的點作為x軸數據
x = np.linspace(0, 10, 100)# 計算不同的函數值作為y軸數據
y1 = np.sin(x)        # 正弦函數
y2 = np.cos(x)        # 余弦函數
y3 = np.tan(x)        # 正切函數
y4 = np.sin(x ** 2)   # x平方的正弦函數
y5 = np.arccos(x)     # 反余弦函數
y6 = np.arctan(x)     # 反正切函數# 創建一個2行3列的子圖布局,圖形尺寸為10x8英寸
fig, axs = plt.subplots(2, 3, figsize=(10, 8))# 在第一行第一列的子圖中繪制正弦函數,顏色為紅色
axs[0, 0].plot(x, y1, 'r')
axs[0, 0].set_title('sin(x)')# 在第一行第二列的子圖中繪制余弦函數,顏色為綠色
axs[0, 1].plot(x, y2, 'g')
axs[0, 1].set_title('cos(x)')# 在第二行第一列的子圖中繪制正切函數,顏色為藍色
axs[1, 0].plot(x, y3, 'b')
axs[1, 0].set_title('tan(x)')# 在第二行第二列的子圖中繪制x平方的正弦函數,顏色為洋紅色
axs[1, 1].plot(x, y4, 'm')
axs[1, 1].set_title('sin(x^2)')# 在第一行第三列的子圖中繪制反余弦函數,顏色為紅色
axs[0, 2].plot(x, y5, 'r')
axs[0, 2].set_title('arccos')# 在第二行第三列的子圖中繪制反正切函數,顏色為紅色
axs[1, 2].plot(x, y6, 'r')
axs[1, 2].set_title('arctan')# 顯示圖形
plt.show()

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

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

相關文章

rust-所有權

什么是所有權 所有權是一組規則,它決定了 Rust 程序如何管理內存。所有運行中的程序都必須管理它們對計算機內存的使用方式。某些語言使用垃圾回收(GC),在程序運行時定期查找不再使用的內存;另一些語言則要求程序員顯式…

破解哈希極化:基于主動路徑規劃的智算網絡負載均衡方案

如今人工智能(AI)和大模型訓練的蓬勃發展,大規模AI算力集群(智算集群)已成為關鍵基礎設施。這類集群對網絡性能,特別是高吞吐、低延遲和無損特性有著嚴苛要求,RoCE因此被廣泛應用。然而&#xf…

Vue工程化 ElementPlus

一、Vue工程化1、環境準備create-vue是Vue官方提供的最新的腳手架工具,用于快速生成一個工程化的Vue項目。提供了以下功能:統一的目錄結構本地調試熱部署單元測試集成打包上線依賴環境:Node JS 是一個免費、開源、跨平臺的JavaScript運行時環…

深入解析TCP:可靠傳輸的核心機制與實現邏輯

Linux 系列 文章目錄Linux 系列前言一、TCP協議的概念1.1 TCP協議的特點1.2 TCP又叫做傳輸控制協議二、TCP協議段格式2.1、TCP的流量控制----------窗口大小(16位)2.2 TCP的確認應答機制2.2.1 什么是確認應答機制2.2.2 確認應答機制的優化2.3 超時重傳機…

通縮浪潮中的 “測量防線”:新啟航如何用國產 3D 白光干涉儀筑牢半導體成本護城河?

一、通縮浪潮下半導體行業的成本困局在通縮浪潮沖擊下,半導體行業面臨市場需求疲軟、產品價格下滑的嚴峻挑戰。為維持競爭力,降低生產成本成為企業生存發展的關鍵。而 3D 白光干涉儀作為半導體晶圓檢測、制程監控的核心設備,傳統進口產品價格…

[網安工具] 自動化威脅檢測工具 —— D 盾 · 使用手冊

🌟想了解其它網安工具?看看這個:[網安工具] 網絡安全工具管理 —— 工具倉庫 管理手冊 D盾防火墻D盾,D盾_防火墻,D盾_IIS防火墻,D盾_web查殺,IIS防火墻,webshell查殺,https://www.d99net.net/ 0x01:D 盾 —— 工具簡介 D 盾防火…

Spring AI 系列之二十二 - ImageModel

之前做個幾個大模型的應用,都是使用Python語言,后來有一個項目使用了Java,并使用了Spring AI框架。隨著Spring AI不斷地完善,最近它發布了1.0正式版,意味著它已經能很好的作為企業級生產環境的使用。對于Java開發者來說…

Redis集群高可用與性能優化實戰指南

Redis集群高可用與性能優化實戰指南 一、業務場景描述 在大型分布式系統中,Redis不僅承擔緩存職責,還常用于限流、排行榜、會話管理等高并發場景。隨著訪問量的激增和集群規模的擴展,如何保證Redis服務的高可用性與高性能,成為后端…

基于SpringBoot+Vue的高校特長互助系統(WebSocket實時聊天、協同過濾算法、ECharts圖形化分析)

“ 🎈系統亮點:WebSocket實時聊天、協同過濾算法、ECharts圖形化分析”01系統開發工具與環境搭建前后端分離架構項目架構:B/S架構運行環境:win10/win11、jdk17前端:技術:框架Vue.js;UI庫&#x…

于縱橫交錯的矩陣間:二維數組與多維數據的默契和鳴

大家好啊,我是小象?(?ω?)? 我的博客:Xiao Xiangζ????? 很高興見到大家,希望能夠和大家一起交流學習,共同進步。* 接著上節課的內容,這一節我們來學習二維數組,學習二維數組的概念和創建,明白二維數組的初始化,學會不完全初始化,完全初始化,按照行初始化的…

SHA-3算法詳解

SHA-3(Secure Hash Algorithm 3)是美國國家標準與技術研究院(NIST)于 2015 年發布的新一代密碼哈希算法標準,其核心基于比利時密碼學家團隊設計的Keccak 算法。SHA-3 的誕生旨在應對 SHA-1 和 SHA-2 系列算法可能面臨的…

前端筆記:同源策略、跨域問題

只有前端才會有跨域問題后端不受限制 一、什么是“同源策略”(Same-Origin Policy) ? 定義: 瀏覽器的 同源策略 是一種 安全機制,限制一個源的 JavaScript 訪問另一個源的資源,以防止惡意網站竊取用戶敏感信息。 ? “…

java通過com進行pdf轉換docx丟失

使用,通過com調用,發現pdf轉換成docx后,沒有看到docx輸出到指定目錄。直接說解決方案:關閉的保護模式即可,打開工具,編輯->首選項 找到安全性(增強),關閉啟動時啟用保護模式關閉后,docx正常輸…

SQL基礎? | 視圖篇

0 序言 本文將系統講解數據庫中視圖的相關知識,包括視圖的定義、作用、創建(單表、多表、基于視圖創建)、查看、更新、修改與刪除操作,以及視圖的優缺點。 通過學習,你能夠掌握視圖的基本概念,理解何時及如…

移動云×華為昇騰:“大EP+PD分離”架構實現單卡吞吐量跨越式提升!

在面向下一代AI基礎設施的關鍵技術攻關中,移動云與華為昇騰計算團隊深度協同,實現了大模型推理引擎的架構級突破。雙方基于昇騰AI基礎軟硬件平臺,針對DeepSeek大模型完成了大規模專家并行(Expert Parallelism,簡稱“大…

配電自動化終端中電源模塊的設計

配電自動化終端中電源模塊的設計 引言 配電終端設備的可靠性和自動化程度,直接影響到整個配電自動化系統的可靠性和自動化水平。由于配電終端設備一般安裝于戶外或比較偏僻的地方,不可能有直流電源提供,因此,配電網終端設備的直流供電方式成為各配網自動化改造中必須要研究…

性能測試-groovy語言1

課程:B站大學 記錄軟件測試-性能測試學習歷程、掌握前端性能測試、后端性能測試、服務端性能測試的你才是一個專業的軟件測試工程師 Jmeter之Groovy語言Groovy簡介為何性能測試中選擇Groovywindows下載Groovy進入官網配置環境變量Groovy的數據類型groovy的保留字字符…

天邑TY1613_S905L3SB_安卓9-高安非-高安版-通刷-TTL線刷固件包

天邑TY1613_S905L3SB_安卓9-高安非-高安版-通刷-TTL線刷固件包刷機說明:本固件為TTL刷機方式,需要準備如下工具;電烙鐵TTL線刷機優盤TTL接觸點位于處理器左側,從上往下數第二腳GND、3TXD、4RXD跑碼工具-【工具大全】-putty跑碼工具…

【硬件-筆試面試題】硬件/電子工程師,筆試面試題-7,(知識點:晶體管放大倍數計算)

目錄 1、題目 2、解答 3、相關知識點 晶體管的電流分配關系 直流電流放大系數\(\overline{\beta}\) 交流電流放大系數\(\beta\) 晶體管的放大條件 總結 【硬件-筆試面試題】硬件/電子工程師,筆試面試題匯總版,持續更新學習,加油&…

力扣-152.乘積最大子數組

題目鏈接 152.乘積最大子數組 class Solution {public int maxProduct(int[] nums) {int[] dpMax new int[nums.length]; //包括nums[i]的乘積最大值int[] dpMin new int[nums.length]; //包括nums[i]的乘積最小值int res nums[0];dpMax[0] nums[0];dpMin[0] nums[0];fo…