Pandas數據可視化寶典:解鎖圖形繪制與樣式自定義的奧秘

Pandas數據可視化寶典:解鎖圖形繪制與樣式自定義的奧秘

引言

數據可視化是將數據以圖形或圖像的形式展示出來,使復雜的數據更容易被人類理解和分析。在數據分析、商業智能、科學研究等領域,數據可視化都扮演著至關重要的角色。Pandas作為一個強大的Python數據處理庫,不僅提供了豐富的數據結構和處理功能,還通過與Matplotlib等可視化庫的集成,使得數據可視化變得簡單高效。本文將詳細介紹如何使用Pandas結合Matplotlib等庫繪制各種圖形,并通過實戰代碼幫助讀者掌握Pandas在數據可視化中的應用。

一、Pandas與數據可視化基礎

Pandas是基于NumPy的一個開源Python數據分析工具庫,提供了高效靈活的數據結構和數據分析工具。Pandas的數據結構主要包括Series(一維數組)和DataFrame(二維表格數據)。在進行數據可視化時,Pandas通常與Matplotlib、Seaborn等可視化庫結合使用,通過簡單的代碼即可生成高質量的圖形。

在進行數據可視化之前,需要確保已經安裝了Pandas、Matplotlib等庫。如果未安裝,可以通過pip命令進行安裝:

pip install pandas matplotlib
二、常見圖形繪制與代碼示例
1. 折線圖

折線圖用于展示數據隨時間或其他連續變量的變化趨勢。使用Pandas的plot()方法可以方便地繪制折線圖。

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt# 創建時間序列數據
ts = pd.Series(np.random.randn(1000), index=pd.date_range('1/1/2000', periods=1000))
ts = ts.cumsum()# 繪制折線圖
ts.plot()
plt.title('Random Walk')
plt.xlabel('Date')
plt.ylabel('Value')
plt.show()
2. 條形圖

條形圖用于展示分類數據的數值比較。使用plot.bar()方法可以繪制條形圖。

# 創建DataFrame數據
df = pd.DataFrame(np.random.rand(10, 4), columns=['A', 'B', 'C', 'D'])# 繪制條形圖
df.plot.bar()
plt.title('Bar Chart')
plt.xlabel('Index')
plt.ylabel('Value')
plt.show()
3. 直方圖

直方圖用于展示數據的分布情況。使用plot.hist()方法可以繪制直方圖。

# 創建DataFrame數據
data = pd.DataFrame({'A': np.random.randn(1000),'B': np.random.randn(1000) * 1.5 + 1
})# 繪制直方圖
data.plot.hist(alpha=0.5, bins=30)
plt.title('Histogram')
plt.xlabel('Value')
plt.ylabel('Frequency')
plt.legend(title='Columns')
plt.show()
4. 箱線圖

箱線圖用于展示數據的中位數、四分位數以及異常值等統計信息。使用plot.box()方法可以繪制箱線圖。

# 創建DataFrame數據
df = pd.DataFrame(np.random.rand(10, 5), columns=['A', 'B', 'C', 'D', 'E'])# 繪制箱線圖
df.plot.box()
plt.title('Boxplot')
plt.ylabel('Value')
plt.show()
5. 面積圖

面積圖用于展示隨時間或其他連續變量變化的累計數值。使用plot.area()方法可以繪制面積圖。

# 創建DataFrame數據
df = pd.DataFrame(np.random.rand(10, 4), columns=['A', 'B', 'C', 'D'])# 繪制面積圖
df.plot.area()
plt.title('Area Chart')
plt.xlabel('Index')
plt.ylabel('Value')
plt.show()
6. 散點圖

散點圖用于展示兩個變量之間的關系。使用plot.scatter()方法可以繪制散點圖。

# 創建DataFrame數據
df = pd.DataFrame(np.random.rand(50, 2), columns=['X', 'Y'])# 繪制散點圖
df.plot.scatter(x='X', y='Y')
plt.title('Scatter Plot')
plt.xlabel('X')
plt.ylabel('Y')
plt.show()
三、自定義圖形樣式

Pandas允許通過參數自定義圖形的顏色、線型、標簽等樣式。例如,修改餅圖的顏色或為折線圖添加標題和軸標簽。

# 修改餅圖顏色
sizes = [15, 30, 45, 10]
labels = ['Frogs', 'Hogs', 'Dogs', 'Logs']
colors = ['gold', 'yellowgreen', 'lightcoral', 'lightskyblue']
explode = (0.1, 0, 0, 0)  # only "explode" the 2nd slice (i.e., 'Hogs')plt.pie(sizes, explode=explode, labels=labels, colors=colors, autopct='%1.1f%%', shadow=True, startangle=140)
plt.axis('equal')  # Equal aspect ratio ensures that pie is drawn as a circle.
plt.show()# 為折線圖添加標題和軸標簽
ts.plot()
plt.title('Custom Title')
plt.xlabel('Custom X Label')
plt.ylabel('Custom Y Label')
plt.show()

注意:雖然餅圖的繪制不直接使用Pandas的繪圖方法,但展示自定義圖形樣式的思路是相通的。

四、圖形保存與導出

Pandas繪制的圖形可以通過Matplotlib的savefig()方法保存為圖片文件,支持多種格式如PNG、PDF等。

# 繪制圖形并保存為PNG文件
ts.plot()
plt.savefig('timeseries_plot.png')
plt.close()  # 關閉圖形窗口# 繪制圖形并保存為PDF文件
df.plot.bar()
plt.savefig('bar_chart.pdf')
plt.close()
五、總結與擴展

本文詳細介紹了Pandas結合Matplotlib等庫進行數據可視化的方法,通過實戰代碼展示了如何繪制折線圖、條形圖、直方圖、箱線圖、面積圖和散點圖等常見圖形,并介紹了如何自定義圖形樣式以及保存和導出圖形。Pandas在數據可視化中的應用遠不止于此,讀者可以進一步探索Pandas的其他功能,如時間序列分析、文本數據處理、機器學習整合等,以充分發揮Pandas在數據處理和分析中的強大作用。

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

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

相關文章

如何通過 Java 來完成 zip 文件與 rar 文件的解壓縮?

目錄 一、用到的知識點 二、代碼展示(分解版) 三、代碼展示(整體版) 一、用到的知識點 1.IO流: Input:輸入,通過“輸入流”進行文件的讀取操作 Output:輸出,通過“輸出流”進行文件的寫入操作 2.文件操作相關: File類&#xff…

Point Cloud Library (PCL) for Python - pclpy 安裝指南 (2)

Point Cloud Library (PCL) for Python - pclpy 安裝指南 (1) 導入庫 from pclpy import pcl import numpy as np導入pclpy庫中的pcl模塊,用于處理點云數據。numpy庫用于處理數值數據。 讀取點云 cloud pcl.PointCloud.PointXYZRGB() pcl.io.loadPCDFile(F:\\bunn…

2024年西安鐵一中集訓DAY1---- 雜題選講

文章目錄 牛客練習賽125 E 聯誼活動(枚舉,分討)牛客練習賽125 F 玻璃彈珠(類莫隊,離線詢問,數據結構)2024ccpc長春邀請賽 D Parallel Lines(隨機化)2024ccpc長春邀請賽 E…

STM32智能健康監測系統教程

目錄 引言環境準備智能健康監測系統基礎代碼實現:實現智能健康監測系統 4.1 數據采集模塊 4.2 數據處理與分析模塊 4.3 通信與網絡系統實現 4.4 用戶界面與數據可視化應用場景:健康監測與優化問題解決方案與優化收尾與總結 1. 引言 智能健康監測系統通…

k8s 容器環境下的鏡像如何轉換為docker 使用

在無法連接registry 的環境中,想要把 crictl 中的鏡像給docker 使用,應該怎么處理? 其實容器鏡像是通用的,crictl 和ctr 以及docker 鏡像是可以互相使用的,因為docker 在1.10版本之后遵從了OCI。所以crictl 環境下的鏡…

Android Studio 的Gradle下載慢,Gradle切換下載源

看圖 下面的文字地址因為轉義符號的問題,https后面少了一個斜杠看圖片進行補充,直接復制不知道能不能用 distributionUrlhttps://mirrors.cloud.tencent.com/gradle/gradle-8.7-bin.zip

浪潮服務器內存物理插槽位置

浪潮服務器內存物理插槽位置 如下圖所示

Doze和AppStandby白名單配置方法和說明

機制 配置路徑 配置案例 說明 影響機制 調試命令 Doze /platform/frameworks/base /data/etc/platform.xml allow-in-power-save 【系統應用Doze白名單配置】 Doze\Job\AppStandby\Alarm\WakeLock\Sync 查看Doze白名單:adb shell dumpsys deviceidle 添加Doze白名單…

漏洞挖掘之信息搜集(一)

本篇文章只從信息搜集的步驟整理 一、選好你要挖掘的src 這一點一定要明確,定好一個,然后下定決心一定要挖到一個高危 常見src總結: 360眾測(需要考核) 漏洞盒子(還可以,審核很慢)----基本無要求 補天:有錢,但要求高,百度收錄占比權重大于等于1或者或者谷歌權…

前端進階全棧計劃:Java基礎語法

前言 本教程旨在幫助初學者系統地掌握Java的基礎知識。我們將從Java的基本語法開始,逐步深入到面向對象編程、異常處理、多線程編程等核心概念。無論你是編程新手,還是希望夯實基礎的開發者,這份指南都將帶你走進Java的世界,打下堅…

昇思MindSpore學習筆記6-06計算機視覺--Vision Transormer圖像分類

摘要: 記錄MindSpore AI框架使用ViT模型在ImageNet圖像數據分類上進行訓練、驗證、推理的過程和方法。包括環境準備、下載數據集、數據集加載、模型解析與構建、模型訓練與推理等。 一、概念 1. ViT模型 Vision Transformer 自注意結構模型 Self-Attention Tran…

MySQL(基礎篇)

DDL (Data Definition Language) 數據定義語言,用來定義數據庫對象(數據庫,表, 字段) DML (Data Manipulation Languag) 數據操作語言,用來對數據庫表中的數據進行增刪改 DQL (Data Query Language) 數據查詢語言,用…

前綴,中綴,后綴表達式

前綴表達式 前綴表達式(也稱為波蘭式)是一種將運算符放在操作數之前的表示數學表達式的方法。在前綴表達式中,操作符出現在它們所操作的操作數之前。 例如,將中綴表達式5 3轉換為前綴表達式,可以寫成 5 3。在這個例…

9 個讓 Python 性能更高的小技巧,你掌握了嗎?

我們經常聽到 “Python 太慢了”,“Python 性能不行”這樣的觀點。但是,只要掌握一些編程技巧,就能大幅提升 Python 的運行速度。 今天就讓我們一起來看下讓 Python 性能更高的 9 個小技巧 python學習資料分享(無償)…

數據(圖像)增廣

一、數據增強 1、增加一個已有數據集,使得有更多的多樣性,比如加入不同的背景噪音、改變圖片的顏色和形狀。 2、增強數據是在線生成的 3、增強類型: (1)翻轉 (2)切割 (3&#xf…

金龍魚:只是躺槍?

中儲糧罐車運輸油罐混用事件持續發酵,食用油板塊集體躺槍。 消費者憤怒的火,怕是會讓食用油企們一點就著。 今天,我們聊聊“油”茅——金龍魚。 一邊是業內人士指出,油罐混用的現象普遍存在,另一邊是金龍魚回應稱&am…

2972.力扣每日一題7/11 Java(擊敗100%)

博客主頁:音符猶如代碼系列專欄:算法練習關注博主,后期持續更新系列文章如果有錯誤感謝請大家批評指出,及時修改感謝大家點贊👍收藏?評論? 目錄 解題思路 解題方法 時間復雜度 空間復雜度 Code 解題思路 該問…

RISC-V主要指令集介紹及規則

推薦資料 RISC-V Reader / RISC-V開放架構設計之道,適合新手閱讀。 概述 RISC-V的模塊化到底是如何實現的呢? 核心部分:RV32I,代表32位字長的整型指令集(Integer),包含了許多整型指令如load…

在C++項目中添加錄像功能:從攝像頭捕獲到視頻文件的保存

在C項目中添加錄像功能:從攝像頭捕獲到視頻文件的保存 在這篇博客中,我們將介紹如何在一個現有的C項目中添加錄像功能,具體包括如何從攝像頭捕獲圖像并將其保存為視頻文件。我們將使用OpenCV庫來處理圖像捕獲和視頻寫入。 目錄 引言準備工…

Python學習筆記35:進階篇(二十四)pygame的使用之音頻文件播放

前言 基礎模塊的知識通過這么長時間的學習已經有所了解,更加深入的話需要通過完成各種項目,在這個過程中逐漸學習,成長。 我們的下一步目標是完成python crash course中的外星人入侵項目,這是一個2D游戲項目。在這之前&#xff…