python 畫條形圖(柱狀圖)

目錄

前言

基礎介紹

月度開支的條形圖


前言

條形圖(bar chart),也稱為柱狀圖,是一種以長方形的長度為變量的統計圖表,長方形的長度與它所對應的變量數值呈一定比例。

當使用 Python 畫條形圖時,通常會使用 Matplotlib 庫。Matplotlib 是一個廣泛用于繪制圖表和數據可視化的庫,它提供了豐富的函數和方法來創建各種類型的圖表,包括條形圖。

Matplotlib 是一個用于繪制數據可視化圖表的 Python 庫。它提供了一個廣泛的功能集,使得用戶可以創建各種類型的圖表,包括折線圖、散點圖、條形圖、餅圖、直方圖等等。Matplotlib 可以輕松地將數據轉換為可視化圖表,幫助我們更好地理解和分析數據。

Matplotlib 庫的主要特點和功能:

  1. 簡單易用:Matplotlib 提供了直觀的 API,使得創建基本圖表變得簡單而直接。
  2. 靈活性:Matplotlib 允許用戶對圖表進行高度定制,包括設置標題、標簽、刻度線、線型、顏色、圖例等等。
  3. 多種圖表類型:Matplotlib 支持眾多常見的圖表類型,如折線圖、散點圖、條形圖、餅圖、直方圖、盒圖等等。
  4. 支持多種輸出格式:Matplotlib 可以將圖表保存為圖片文件(如 PNG、JPG、SVG)、PDF 文件以及其他常見的圖像格式。
  5. 與 NumPy 和 Pandas 集成:Matplotlib 與 NumPy 和 Pandas 庫完美集成,使得數據的處理和可視化更加便捷。
  6. 支持 Jupyter Notebook:Matplotlib 可以在 Jupyter Notebook 環境中無縫使用,使得數據分析和可視化更加交互性和動態化。

基礎介紹

import matplotlib.pyplot as plt# 數據
categories = ['A', 'B', 'C', 'D', 'E']
values = [7, 13, 5, 17, 10]# 創建條形圖
plt.bar(categories, values, color='skyblue')# 添加標題和標簽
plt.title('Example Bar Chart')
plt.xlabel('Categories')
plt.ylabel('Values')# 顯示條形圖
plt.show()
  • 使用 Matplotlib 創建了一個簡單的條形圖,并對其進行了一些定制。
  • 首先,我們導入 Matplotlib 庫,并使用 import matplotlib.pyplot as plt 將其重命名為 plt,以方便后續使用。
  • 定義了兩個列表變量 categoriesvalues,分別表示條形圖的類別和對應的數值。在這個例子中,類別包括 'A'、'B'、'C'、'D'、'E',對應的數值分別是 7、13、5、17、10。
  • 使用 plt.bar(categories, values, color='skyblue') 創建了一個條形圖。plt.bar 函數的第一個參數是類別列表 categories,第二個參數是對應的數值列表 values,通過這兩個參數可以指定條形圖的類別和高度。我們還通過 color='skyblue' 參數設置了條形的顏色為天藍色。
  • 使用 plt.title('Example Bar Chart') 添加了一個標題,將圖表的標題設置為 'Example Bar Chart'。使用 plt.xlabel('Categories')plt.ylabel('Values') 分別添加了 x 軸和 y 軸的標簽,將 x 軸標簽設置為 'Categories',y 軸標簽設置為 'Values'。
  • 使用 plt.show() 顯示生成的條形圖。這個函數會打開一個窗口顯示圖表,你可以對圖表進行交互操作,如放大、保存為圖片等。

效果圖:

月度開支的條形圖

import matplotlib.pyplot as plt# 月份和開支數據
months = ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月']
expenses = [2000, 2200, 2500, 1800, 2100, 2400, 2300, 2100, 1900, 2000, 2200, 2300]# 創建條形圖
plt.bar(months, expenses, color='skyblue')# 添加標題和標簽
plt.title('月度開支')
plt.xlabel('月份')
plt.ylabel('開支(元)')# 旋轉 x 軸標簽
plt.xticks(rotation=45)# 顯示條形圖
plt.show()
  • 用 Matplotlib 創建了一個月度開支的條形圖,并對其進行了一些定制。
  • 導入了 Matplotlib 庫,并使用 import matplotlib.pyplot as plt 將其重命名為 plt,以方便后續使用。
  • 定義了兩個列表變量 monthsexpenses,分別表示月份和對應的開支數據。其中,months 包括了一年中的所有月份,而 expenses 則包含了每個月的開支金額。
  • 然后,我們使用 plt.bar(months, expenses, color='skyblue') 創建了一個條形圖。plt.bar 函數的第一個參數是月份列表 months,第二個參數是對應的開支數據列表 expenses。我們還通過 color='skyblue' 參數設置了條形的顏色為天藍色。
  • 使用 plt.title('月度開支') 添加了一個標題,將圖表的標題設置為 '月度開支'。使用 plt.xlabel('月份')plt.ylabel('開支(元)') 分別添加了 x 軸和 y 軸的標簽,將 x 軸標簽設置為 '月份',y 軸標簽設置為 '開支(元)'。
  • 還使用了 plt.xticks(rotation=45) 將 x 軸的標簽進行了旋轉,使得月份的文字能夠更好地展示并避免重疊。
  • 使用 plt.show() 顯示生成的條形圖。這個函數會打開一個窗口顯示圖表,你可以對圖表進行交互操作,如放大、保存為圖片等。

效果圖:

在這里我們看到沒有顯示中文,而是不知名的亂碼,嘶需要進行代碼修改,添加以下代碼

?# 設置中文字體和禁用Unicode減號
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

import matplotlib.pyplot as plt# 設置中文字體和禁用Unicode減號
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False# 月份和開支數據
months = ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月']
expenses = [2000, 2200, 2500, 1800, 2100, 2400, 2300, 2100, 1900, 2000, 2200, 2300]# 創建條形圖
plt.bar(months, expenses, color='skyblue')# 添加標題和標簽
plt.title('月度開支')
plt.xlabel('月份')
plt.ylabel('開支(元)')# 旋轉 x 軸標簽
plt.xticks(rotation=45)# 顯示條形圖
plt.show()

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

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

相關文章

python代碼:如何控制一個exe程序只能執行一次

import ctypes import sys def is_program_running(): # 創建互斥體 mutex_name "Global\\MonitorClientMutex" h_mutex ctypes.windll.kernel32.CreateMutexW(None, False, mutex_name) # 檢查互斥體是否已經存在 if ctypes.windll.kernel32.Get…

Centos7.9安裝谷歌【解決依賴問題】

安裝過程 mkdir /home/app cd /home/app wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpmyum install -y redhat-lsb-core-4.0-7.el6.centos.x86_64 yum install -y libX11-devel --nogpg yum install -y cmake gcc gcc-c gtk-devel gim…

vscode 編譯運行c++ 記錄

一、打開文件夾,新建或打開一個cpp文件 二、ctrl shift p 進入 c/c配置 進行 IntelliSense 配置。主要是選擇編譯器、 c標準, 設置頭文件路徑等,配置好后會生成 c_cpp_properties.json; 二、編譯運行: 1、選中ma…

zabbix 通過 odbc 監控 mssql

1、環境 操作系統:龍蜥os 8.0 zabbix:6.0 mssql:2012 2、安裝odbc 注意:需要在zabbix server 或者 zabbix proxy 安裝 odbc驅動程序 dnf -y install unixODBC unixODBC-devel3、安裝mssql驅動程序 注意:我最開始嘗試…

Tomcat管理功能使用

前言 Tomcat管理功能用于對Tomcat自身以及部署在Tomcat上的應用進行管理的web應用。在默認情況下是處于禁用狀態的。如果需要開啟這個功能,需要配置管理用戶,即配置tomcat-users.xml文件。 !!!注意:測試功…

react 學習筆記 李立超老師 | (學習中~)

文章目錄 react學習筆記01入門概述React 基礎案例HelloWorld三個API介紹 JSXJSX 解構數組 創建react項目(手動)創建React項目(自動) | create-react-app事件處理React中的CSS樣式內聯樣式 | 內聯樣式中使用state (不建議使用)外部樣式表 | CSS Module React組件函數式組件和類組…

【數據結構和算法】反轉字符串中的單詞

其他系列文章導航 Java基礎合集數據結構與算法合集 設計模式合集 多線程合集 分布式合集 ES合集 文章目錄 其他系列文章導航 文章目錄 前言 一、題目描述 二、題解 2.1 方法一:雙指針 2.2 方法二:分割 倒序 三、代碼 3.1 方法一:雙…

不同品牌的手機如何投屏到蘋果MacBook?例如小米、華為怎樣投屏比較好?

習慣使用apple全家桶的人當然知道蘋果手機或iPad可以直接用airplay投屏到MacBook。 但工作和生活的多個場合里,并不是所有人都喜歡用同一品牌的設備,如果同事或同學其他品牌的手機需要投屏到MacBook,有什么方法可以快捷實現? 首先…

1 億個數據取出最大前 100 個有什么方法?

1 億個數據取出最大前 100 個有什么方法? 大家好,這是一道經常在面試中被遇到的一個問題,我之前面試也是被問到過得,現在一起學習下,下次再被問到就可以輕松地用對。 在計算機科學和數據處理領域,我們經常…

【GDB】

GDB 1. GDB調試器1.1 前言1.2 GDB編譯程序1.3 啟動GDB1.4 載入被調試程序1.5 查看源碼1.6 運行程序1.7 斷點設置1.7.1 通過行號設置斷點1.7.2 通過函數名設置斷點1.7.3 通過條件設置斷點1.7.4 查看斷點信息1.7.5 刪除斷點 1.8 單步調試1.9 2. GDB調試core文件2.1 設定core文件的…

(五)五種最新算法(SWO、COA、LSO、GRO、LO)求解無人機路徑規劃MATLAB

一、五種算法(SWO、COA、LSO、GRO、LO)簡介 1、蜘蛛蜂優化算法SWO 蜘蛛蜂優化算法(Spider wasp optimizer,SWO)由Mohamed Abdel-Basset等人于2023年提出,該算法模型雌性蜘蛛蜂的狩獵、筑巢和交配行為&…

iOS(swiftui)——系統懸浮窗( 可在其他應用上顯示,可實時更新內容)

因為ios系統對權限的限制是比較嚴格的,ios系統本身是不支持全局懸浮窗(可在其他app上顯示)。在iphone14及之后的iPhone機型中提供了一個叫 靈動島的功能,可以在手機上方可以添加一個懸浮窗顯示內容并實時更新,但這個功能有很多局限性 如:需要iPhone14及之后的機型且系統…

Java面試遇到的一些常見題

目錄 1. Java語言有幾種基本類型,分別是什么? 整數類型(Integer Types): 浮點類型(Floating-Point Types): 字符類型(Character Type): 布爾類…

(六)五種最新算法(SWO、COA、LSO、GRO、LO)求解無人機路徑規劃MATLAB

一、五種算法(SWO、COA、LSO、GRO、LO)簡介 1、蜘蛛蜂優化算法SWO 蜘蛛蜂優化算法(Spider wasp optimizer,SWO)由Mohamed Abdel-Basset等人于2023年提出,該算法模型雌性蜘蛛蜂的狩獵、筑巢和交配行為&…

【完整項目】雙模式答題卡識別軟件中YOLO模式的訓練部分詳解,包括訓練填涂區域和手寫準考證號,手把手詳細教學,可延申拓展訓練其他圖像數據

目錄 前言1. 數據準備2. 數據標注3. 先跑起來Windows下用本地的CPU或GPU訓練本地Windows系統連接服務器訓練前言 前文:【完整項目】基于Python+Tkinter+OpenCV+Yolo+手寫OCR的雙模式答題卡識別軟件的設計與實現 如果你需要訓練自己的答題卡模型,那么請先看上面的文章鏈接。…

Flutter自定義下拉選擇框dropDownMenu

利用PopupMenuButton和PopupMenuItem寫了個下拉選擇框,之所以不采用系統的,是因為自定義的更能適配項目需求,話不多說,直接看效果 下面直接貼出代碼、代碼中注釋寫的都很清楚,使用起來應該很方便,如果有任何…

C : DS靜態查找之順序索引查找

Description 給出一個隊列和要查找的數值,找出數值在隊列中的位置,隊列位置從1開始 要求使用順序索引查找算法,其中索引表查找和塊內查找都采用不帶哨兵、從頭開始的順序查找方法。 Input 第一行輸入n,表示主表有n個數據 第二…

OpenSSL 編程指南

目錄 前言初始化SSL庫創建SSL 上下文接口(SSL_CTX)安裝證書和私鑰加載證書(客戶端/服務端證書)加載私鑰/公鑰加載CA證書設置對端證書驗證例1 SSL服務端安裝證書例2 客戶端安裝證書創建和安裝SSL結構建立TCP/IP連接客戶端創建socket服務端創建連接創建SSL結構中的BIOSSL握手服務…

Scrum

Scrum是一個用于開發和維持復雜產品的框架,是一個增量的、迭代的開發過程。在這個框架中,整個開發過程由若干個短的迭代周期組成,一個短的迭代周期稱為一個Sprint,每個Sprint的建議長度是2到4周(互聯網產品研發可以使用1周的Sprin…

【Linux】輸出緩沖區和fflush刷新緩沖區

目錄 一、輸出緩沖區 1.1 輸出緩沖區的使用 1.2 緩沖區的刷新 1.3 輸出緩沖區的作用 二、回車換行 一、輸出緩沖區 C/C語言,當調用輸出函數(如printf()、puts()、fwrite()等)時,會給我們提供默認的緩沖區。這些數據先存…