Matplotlib 柱形圖

Matplotlib 柱形圖

引言

在數據可視化領域,柱形圖是一種非常常見且強大的圖表類型。它能夠幫助我們直觀地比較不同類別或組之間的數據大小。Matplotlib,作為Python中最受歡迎的數據可視化庫之一,提供了豐富的繪圖功能,其中包括創建柱形圖。本文將詳細介紹Matplotlib中的柱形圖,包括其基本用法、高級特性以及如何進行優化。

基本用法

安裝Matplotlib

在開始使用Matplotlib之前,確保已經安裝了該庫。可以使用以下命令進行安裝:

pip install matplotlib

導入Matplotlib

import matplotlib.pyplot as plt

創建柱形圖

以下是一個簡單的柱形圖示例:

# 數據
categories = ['類別A', '類別B', '類別C', '類別D']
values = [10, 20, 30, 40]# 創建柱形圖
plt.bar(categories, values)# 添加標題和標簽
plt.title('柱形圖示例')
plt.xlabel('類別')
plt.ylabel('數值')# 顯示圖表
plt.show()

以上代碼將創建一個包含四個類別的柱形圖,每個類別的值分別為10、20、30和40。

高級特性

柱形圖顏色與樣式

Matplotlib允許我們自定義柱形圖的顏色和樣式。以下示例展示了如何修改柱形圖的顏色:

# 自定義顏色
colors = ['red', 'green', 'blue', 'orange']# 創建柱形圖,設置顏色
plt.bar(categories, values, color=colors)# 顯示圖表
plt.show()

此外,還可以使用style.use()方法來設置全局樣式:

import matplotlib.pyplot as pltplt.style.use('ggplot')# 創建柱形圖
plt.bar(categories, values)# 顯示圖表
plt.show()

3D柱形圖

Matplotlib還支持3D柱形圖的創建。以下是一個簡單的3D柱形圖示例:

import numpy as np# 數據
x = np.linspace(0, 10, 5)
y = np.linspace(0, 10, 5)
z = np.random.rand(5, 5)# 創建3D柱形圖
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.bar3d(x, y, z, 1, 1, 1)# 顯示圖表
plt.show()

餅圖與柱形圖結合

餅圖與柱形圖結合可以更直觀地展示數據。以下是一個示例:

# 數據
labels = ['類別A', '類別B', '類別C', '類別D']
sizes = [15, 30, 45, 10]
colors = ['red', 'green', 'blue', 'orange']# 創建柱形圖
plt.bar(labels, sizes, color=colors)# 創建餅圖
plt.pie(sizes, labels=labels, autopct='%1.1f%%', startangle=140)# 顯示圖表
plt.show()

優化與美化

標題、標簽與圖例

為了提高可讀性,我們可以對標題、標簽和圖例進行優化:

# 添加標題
plt.title('柱形圖優化示例', fontsize=18)# 添加標簽
plt.xlabel('類別', fontsize=14)
plt.ylabel('數值', fontsize=14)# 添加圖例
plt.legend(['類別'], loc='upper left')# 顯示圖表
plt.show()

交互式圖表

Matplotlib支持創建交互式圖表。以下是一個簡單的交互式柱形圖示例:

import matplotlib.pyplot as plt# 創建柱形圖
fig, ax = plt.subplots()
bars = ax.bar(categories, values)# 添加交互式事件
def on_hover(event):for bar in bars:if bar.contains(event)[0]:plt.setp(bars, alpha=0.5)plt.setp(bar, alpha=1.0)plt.draw()fig.canvas.mpl_connect('motion_notify_event', on_hover)# 顯示圖表
plt.show()

總結

Matplotlib中的柱形圖功能豐富,可以滿足各種數據可視化需求。通過本文的介紹,相信你已經對Matplotlib柱形圖有了深入的了解。在實際應用中,可以根據自己的需求對柱形圖進行優化和美化,以達到最佳的視覺效果。

本文內容為原創,如需引用,請標明出處。感謝您的閱讀!

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

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

相關文章

sparksql的Transformation與 Action操作

Transformation操作 與RDD類似的操作 map、filter、flatMap、mapPartitions、sample、 randomSplit、 limit、 distinct、dropDuplicates、describe,而以上這些都是企業中比較常用的,這里在一個文件中統一論述 val df1 spark.read.json("src/m…

微軟Data Formulator:用AI重塑數據可視化的未來

在數據驅動的時代,如何快速將復雜數據轉化為直觀的圖表是每個分析師面臨的挑戰。微軟研究院推出的開源工具 Data Formulator,通過結合AI與交互式界面,重新定義了數據可視化的工作流。本文將深入解析這一工具的核心功能、安裝方法及使用技巧,助你輕松駕馭數據之美。 一、Dat…

20分鐘上手DeepSeek開發:SpringBoot + Vue2快速構建AI對話系統

20分鐘上手DeepSeek開發:SpringBoot Vue2快速構建AI對話系統 前言 在生成式AI技術蓬勃發展的今天,大語言模型已成為企業智能化轉型和個人效率提升的核心驅動力。作為國產大模型的優秀代表,DeepSeek憑借其卓越的中文語義理解能力和開發者友…

神經網絡中層與層之間的關聯

目錄 1. 層與層之間的核心關聯:數據流動與參數傳遞 1.1 數據流動(Forward Propagation) 1.2 參數傳遞(Backward Propagation) 2. 常見層與層之間的關聯模式 2.1 典型全連接網絡(如手寫數字分類&#xf…

本地部署deepseek-r1建立向量知識庫和知識庫檢索實踐【代碼】

目錄 一、本地部署DS 二、建立本地知識庫 1.安裝python和必要的庫 2.設置主目錄工作區 3.編寫文檔解析腳本 4.構建向量數據庫 三、基于DS,使用本地知識庫檢索 本地部署DS,其實非常簡單,我寫了一篇操作記錄,我終于本地部署了DeepSeek-R1(圖文全過程)-CSDN博客 安裝…

String、StringBuffer、StringBuiler的區別

可變性 String是不可變的,這是因為String內部用于存儲數據的char[]數組用了final關鍵字修飾,而且是private的,并且沒有對外提供修改數組的方法。 StringBuffer和StringBuilder是可變的,它們內部的char數組沒有用final關鍵字修飾。…

Certd自動化申請和部署SSL證書并配置https

服務器使用的華為云,之前SSL證書通過配置Cloudflare的DNS實現的,最近華為云備案提示需修改解析至境內華為云IP,若解析境外IP,域名無需備案,需注銷或取消接入備案信息,改為使用Certd自搭建證書管理工具&…

git tag以及git

git tag 以及git 一、先說收獲吧 1. git bash 在windows上 類似于linux的bash提供的shell命令行窗口,可以執行很多linux命令,cd pwd ls vim cat touch mkdir,還可以用正則匹配查看標簽。相當于在windows上裝了一個小的linux。git init myproj…

ESP8266通過AT指令配置雙向透傳

一、固件燒錄 IO0接地后上電,進入燒錄模式,燒錄完成后去掉即可 二、參數配置 1、服務器端 ATCWMODE_DEF2 ATCWSAP_DEF"ESP8266","12345678",5,3 ATSAVETRANSLINK1,"192.168.4.2",9090,"UDP",8080 2、客戶端…

【3D模型】【游戲開發】【Blender】Blender模型分享-獅頭木雕附導入方法

導入方法: [Blender] 如何導入包含紋理的 .blend 模型文件 在 3D 建模和渲染工作中,Blender 是一款功能強大的免費開源軟件。很多時候,我們需要導入 .blend 后綴的模型文件,同時確保紋理(textures)文件夾…

C# | 超簡單CSV表格讀寫操作(輕松將數據保存到CSV,并支持讀取還原)

C# | 超簡單CSV表格讀寫操作(輕松將數據保存到CSV,并支持讀取還原) 文章目錄 C# | 超簡單CSV表格讀寫操作(輕松將數據保存到CSV,并支持讀取還原)一、上位機開發中的CSV應用背景二、CSV讀寫實戰教學1. 基本對…

Git push后撤銷提交

一、介紹 當某次更改完工程后,push了本地倉庫到云端,但是發現有地方改錯了,想撤銷這次推送,或者某次提交就更改了很小一部分,想和本地這次修改的合并為一次推送,省的在云端顯示特別多次提交,顯得…

Unity導出WebGL,無法顯示中文

問題:中文無法顯示 默認字體無法顯示中文 在編輯器中設置了中文和英文的按鈕,中文按鈕無法顯示 導出后無法顯示中文 解決辦法: 自己添加字體,導入項目,并引用 示例 下載一個字體文件,這里使用的阿里…

閱讀《Vue.js設計與實現》 -- 02

接上一篇文章:閱讀《Vue.js設計與實現》 – 01 文章目錄 第二章提升用戶的開發體驗tips 控制框架代碼的體積Tree-Shaking副作用 框架應該輸出怎樣的構建產物?注意這兩個文件有什么區別? 特性開關如何實現? 處理錯誤TS支持 第二章 …

Mac:Ant 下載+安裝+環境配置(詳細講解)

📌 下載 Ant 下載地址:https://ant.apache.org/bindownload.cgi 📌 無需安裝 Apache官網下載 Ant 壓縮包,無需安裝,下載解壓后放到自己指定目錄下即可。 按我自己的習慣,我會在用戶 jane 目錄下新建了個…

qt圖表背景問題

從代碼來看,這段代碼涉及到設置背景透明度和背景可見性的操作,主要是在一個基于Qt框架的圖形界面程序中對某個圖表控件(fontChart)和視圖控件(fontChartView)進行操作。以下是每行代碼的作用以及它們之間的…

藍橋杯國賽子串2023動態規劃,暴力

#include <bits/stdc.h> using namespace std; // string ss; #define int long long string s; //該方法通過動態規劃&#xff0c;找到2023字串&#xff0c;而2023等于202加3&#xff0c;202等于202&#xff0c;20等于20&#xff1b; int f2() {int dp[4]{0};//dp[0]代表…

uni-app——網絡API

uni-app 網絡API 在 uni-app 開發中&#xff0c;網絡請求是獲取數據與和服務器交互的重要手段。以下介紹 uni-app 中常見的網絡 API&#xff0c;包括發起請求、上傳和下載以及 WebSocket、UDP 通信等方面。 發起請求 在 uni-app 里&#xff0c;使用uni.request(OBJECT)來發起…

計算機網絡筆記再戰——理解幾個經典的協議HTTP章3

理解幾個經典協議——HTTP章3 返回結果的HTTP狀態碼 ? 我們知道&#xff0c;ICMP可以傳遞IP通信時候的狀態如何。HTTP雖然沒有輔助的解析&#xff0c;但是它可以使用狀態碼來表達我們的HTTP請求的結果&#xff0c;標記服務器端的處理是否正常、通知出現的錯誤等工作。這就是…

國產編輯器EverEdit - Hex Dump插件:看到文本的另一面!

1 Hex Dump插件 1.1 應用場景 有時可能需要顯示字母的ASCII編碼&#xff0c;或其他文字的字節編碼&#xff0c;可以使用Hex Dump插件來完成 1.2 使用方法 安裝Hex Dump插件&#xff0c;安裝插件方法參考&#xff1a;擴展管理 在編輯器中選中文本&#xff0c;選擇擴展 -> …