Matplotlib | 繪制柱狀圖

簡介

安裝 Matplotlib

開始繪制

簡單柱狀圖

改變顏色

改變紋理

改變邊框樣式

改變透明度

改變柱子寬度

改變圖表標題

?編輯

并列柱狀圖

橫向柱狀圖

堆疊柱狀圖

更多函數


簡介

柱狀圖(Bar chart),是一種以長方形的長度為變量的表達圖形的統計圖。

由一系列高度不等的縱向條形表示數據分布的情況,能直觀地對比不同數據,以及快速判斷最大值、最小值等。

柱狀圖有不同的繪制方式,可以是縱向,也可以是橫向,可以是平面,也可以是立體。

以下就是一種最普通的柱狀圖:

那么,開始吧!(記得?點贊收藏 !!)?


安裝 Matplotlib

打開 CMD, 輸入(前提是要安裝 Python):

pip install matplotlib

如果下載較慢,建議使用國內鏡像:

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

開始繪制

在 Python 中,數據可視化第三方庫 Matplotlib 可以很方便快捷地繪制圖表。

在 Matplotlib 中,繪制柱狀圖的函數如下:

bar(x, height, width=0.8, bottom=None, *, align='center', data=None, **kwargs)

簡單柱狀圖

先看代碼(請結合注釋食用!)

其中,修改 name 即可改變橫軸標簽,修改 value 即可改變數值。

import matplotlib.pyplot as plt    # 導入第三方庫
name = [1, 2, 3, 4, 5]             # 橫軸上的標簽
value = [10, 25, 17, 8, 20]        # 數值(和橫軸標簽一一對應)
plt.bar(name, value)               # 繪制柱狀圖
plt.show()                         # 顯示柱狀圖

改變顏色

修改全部顏色:

參數名稱為 fc / facecolor, 參數值可以為:r, g, b, y, c, m, k, w 等,更多關于顏色的可以看這篇文章:一文搞懂matplotlib中的顏色設置,講的很全。

import matplotlib.pyplot as plt
name = [1, 2, 3, 4, 5]
value = [10, 25, 17, 8, 20]
plt.bar(name, value, fc="r")    # 修改全部顏色為紅色
plt.show()

修改部分顏色:

參數名為 color。

import matplotlib.pyplot as plt
name = [1, 2, 3, 4, 5]
value = [10, 25, 17, 8, 20]
# 修改顏色分別為:紅,黃,藍,綠,黃
plt.bar(name, value, color=["r", "y", "b", "g", "y"])
plt.show()

改變紋理

參數名為 hatch,參數值可以為:/,o,O,x,-,+ 等。

import matplotlib.pyplot as plt
name = [1, 2, 3, 4, 5]
value = [10, 25, 17, 8, 20]
plt.bar(name, value, hatch="x")    # 將紋理改成"x"樣紋路
plt.show()

改變邊框樣式

顏色參數:ec / edgecolor

線形參數:ls / linestyle,參數值可以為:-(實線),--(虛線)

線寬參數:lw / linewidth

import matplotlib.pyplot as plt
name = [1, 2, 3, 4, 5]
value = [10, 25, 17, 8, 20]
plt.bar(name, value, ec="black", ls="-", lw=2)  # 將邊框改為黑色,實線,寬度為2
plt.show()

改變透明度

參數名稱:alpha,參數值為 0 ~ 1 中的小數,默認為1.

import matplotlib.pyplot as plt
name = [1, 2, 3, 4, 5]
value = [10, 25, 17, 8, 20]
plt.bar(name, value, alpha=0.6)  # 透明度改為60%
plt.show()

改變柱子寬度

參數名稱:width,參數一般在 0 ~ 1 之間,默認值為 0.8.

import matplotlib.pyplot as plt
name = [1, 2, 3, 4, 5]
value = [10, 25, 17, 8, 20]
plt.bar(name, value, width=0.6)  # 寬度改為 0.6
plt.show()

?

改變圖表標題

函數:plt.title()

import matplotlib.pyplot as plt
name = [1, 2, 3, 4, 5]
value = [10, 25, 17, 8, 20]
plt.bar(name, value)
plt.title("TITLE") # 設置標題
plt.show()

并列柱狀圖

需要調整不同柱子的位置來實現并列,有些復雜。

import numpy as np  # 只是輔助生成列表用的x = np.arange(3)
x1 = [79, 88, 80]
x2 = [80, 82, 83]total_width, n = 0.6, 2
width = total_width / n
x = x - (total_width - width) / 2  # 現在的x是每個并列柱的第一柱的中心橫坐標plt.bar(x, x1,  width=width, label='Boy')                   # 圖一
plt.bar(x + width, x2, width=width, label='Girl', fc='y')   # 圖二
plt.xticks(np.arange(3), ['Chinese', 'Math', 'English'])    # 更改橫軸標簽
plt.legend()                                                # 添加圖例
plt.title("Exam Result")
plt.show()

?

橫向柱狀圖

函數名:plt.barh()?,參數和 bar()?差不多。

import matplotlib.pyplot as plt
name = [1, 2, 3, 4, 5]
value = [10, 25, 17, 8, 20]
plt.barh(name, value)
plt.show()

堆疊柱狀圖

參數名稱:bottom,將堆疊在上面的圖表中 bottom 設為下面的圖表地數據即可。

x = ["team1", "team2", "team3"]
x1 = [5, 8, 4]
x2 = [6, 8, 11]plt.bar(x, x1, label='boy')
plt.bar(x, x2, bottom=x1, label='girl')
plt.legend()
plt.show()

更多函數

plt.xticks()    # 橫軸數據
plt.yticks()    # 縱軸數據
plt.xlabel()    # 橫軸標題
plt.ylabel()    # 縱軸標題
plt.legend()    # 圖例
plt.text()      # 文字

本文就到這里,也算是能畫出一個美觀的柱狀圖了!

如果本文對你有幫助的話,別忘?點贊收藏,防止下次找不到了!

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

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

相關文章

黑白群暉激活AME(Advanced Media Extention)

黑群暉激活Advanced Media Extensions(AME)解碼HEVC視頻和HEIC圖片 聲明:此教程在正版群暉系統中進行的操作,雖然也能用于非正版系統中AME的安裝,但是在非正版系統中安裝AME屬于破解行為,對系統造成的影響和…

2006NOIP普及組真題 1. 明明的隨機數

線上OJ&#xff1a; 【06NOIP普及組】明明的隨機數 核心思想&#xff1a; 本題的要求是 1、去重 2、排序 以上兩個要求正好可以使用 set 來實現。set 自帶了去重和排序的功能。輸出時使用 iterator 即可。 解法一、set #include <bits/stdc.h> using namespace std;in…

這里一定有你不知道的VS調試技巧

目錄 使用環境&#xff1a;Visual Studio 2022,如無特殊說明&#xff0c;都是在Debug、x64環境下編譯 一.什么是BUG 二.調試快捷鍵 F9&#xff1a;創建斷電或取消斷點 條件斷點&#xff1a;滿足這個條件才觸發 F5&#xff1a;啟動調試&#xff0c;經常?來直接跳到下?個斷…

20 - grace數據處理 - 地下水儲量計算過程分解 - 地下水儲量計算

20 - grace數據處理 - 地下水儲量計算過程分解 - 地下水儲量計算 0 引言1 地下水儲量變化計算過程0 引言 由水平衡方程可以將地下水儲量的計算過程分解為3個部分,第一部分計算陸地水儲量變化、第二部分計算地表水儲量變化、第三部分計算冰后回彈改正、第四部分計算地下水儲量變…

python爬蟲之JS逆向——網頁數據解析

目錄 一、正則 1 正則基礎 元字符 基本使用 通配符: . 字符集: [] 重復 位置 管道符和括號 轉義符 轉義功能 轉義元字符 2 正則進階 元字符組合(常用) 模式修正符 re模塊的方法 有名分組 compile編譯 二、bs4 1 四種對象 2 導航文檔樹 嵌套選擇 子節點、…

Vue:Bin Code Editor格式化JSON編輯器

最終效果如下圖所示&#xff0c; Bin Code Editor安裝 npm或yarn安裝命令如下&#xff0c; npm i bin-code-editor -S # or yarn add bin-code-editor 組件注冊 全局注冊 在 main.js 中寫入導入以下內容&#xff0c; import Vue from vue; import CodeEditor from bin-cod…

服務器數據恢復—異常斷電導致ESXi虛擬機無法啟動的數據恢復案例

服務器數據恢復環境&#xff1a; 某大廠PS4000服務器&#xff0c;服務器上部署VMware ESXi虛擬化平臺。 服務器故障&#xff1a; 機房斷電&#xff0c;重啟后服務器中的某臺虛擬機不能正常啟動。管理員查看虛擬機配置文件&#xff0c;發現無法啟動的虛擬機的配置文件除了磁盤文…

【每日刷題】Day53

【每日刷題】Day53 &#x1f955;個人主頁&#xff1a;開敲&#x1f349; &#x1f525;所屬專欄&#xff1a;每日刷題&#x1f34d; &#x1f33c;文章目錄&#x1f33c; 1. 1019. 鏈表中的下一個更大節點 - 力扣&#xff08;LeetCode&#xff09; 2. 116. 填充每個節點的下一…

Exce 兩列一組對齊呈現,缺失補 0

Excel 里有 多 組數據&#xff0c;每組 2 列&#xff0c;每組長度不同。第 1 列是編號&#xff0c;列之間的編號有重復。 ABCDEFGH1Mass10Mass11Mass12Mass132802200581309088146532802225938133306824779282975598142002482273148413154988335698822331305832720485110460842…

計算機考研|408 值得選擇嗎?有哪些優勢?

408當然非常值得報考&#xff0c;但是現在的408已經卷麻了&#xff01; 現在越來越多的學校改考408&#xff0c;光今年就有6所發布通知&#xff0c;宣布改考408&#xff0c;分別是&#xff1a; 這對考408的學生肯定是好消息&#xff0c;后面可能還會有學校陸續改考&#xff0c;…

一、實現一個簡單的 Google Chrome 擴展程序

目錄 &#x1f9ed; 效果展示 # 圖示效果 a. 拓展程序列表圖示效果&#xff1a; b. 當前選項卡頁面右鍵效果&#xff1a; c. 拓展程序消息提示效果&#xff1a; &#x1f4c7; 項目目錄結構 # 說明 # 結構 # 文件一覽 ? 核心代碼 # manifest.json # background.j…

SLAM ORB-SLAM2(26)重定位過程

SLAM ORB-SLAM2(26)重定位過程 1. 前言2. 詞袋模型2.1. 加快搜索2.2. 在文本檢索的應用2.3. 引入視覺圖像分類3. 重定位總體過程3.1. 計算當前幀特征點的詞袋向量3.2. 根據用詞袋查找相似的候選關鍵幀3.3. 通過詞袋模型進行初步匹配3.4. 查詢較匹配的關鍵幀3.4.1. 通過PnP投影…

華為 2024 屆實習校園招聘-硬件通?/單板開發——第五套

華為 2024 屆實習校園招聘-硬件通?/單板開發——第五套 部分題目分享&#xff0c;完整版帶答案(有答案和解析&#xff0c;答案非官方&#xff0c;未仔細校正&#xff0c;僅供參考&#xff09;&#xff08;共十套&#xff0c;每套四十題選擇題&#xff09;獲取&#xff08;WX:…

java期末細節知識整理(一)

1.java程序的執行過程&#xff1a;先編譯后解釋。也就是我們在idea寫的文件叫做java源文件&#xff08;.java結尾的文件&#xff09;&#xff0c;經過編譯器會生成字節碼文件&#xff08;.class結尾的文件&#xff09;&#xff0c;再通過解釋器進行實現 2.棧用來存儲引用類型的…

易語言本地IP一鍵切換程序(附帶源碼)

易語言本地IP一鍵切換程序 效果圖部分源碼源碼領取下期更新預報 效果圖 部分源碼 .判斷開始 (單選框1.選中 &#xff1d; 真)標簽5.標題 &#xff1d; #換行符 &#xff0b; “正在切換IP.”.如果真 (運行 (“netsh interface ip set address ” &#xff0b; #引號 &#xff…

PHP火狼大灌籃游戲源碼微信+手機wap源碼帶控制

使用此接口可以實現支付寶、QQ錢包、微信支付與財付通的即時到賬&#xff0c;免簽約&#xff0c;無需企業認證。PHP易支付源碼&#xff0c;免簽約不需要企業的支付平臺源碼&#xff0c;彩虹第三四方在線支付系統源碼,易支付token合作者商戶申請源碼&#xff0c;app和網頁都可以…

ubuntu--Linux運行時格式

Linux運行時格式 \r 錯誤 用vim打開那個執行錯誤的 sh腳本文件 進入最后一行模式下 :set ff顯示 fileformatdos 解決方法 : :set ffunix查看是否更改 : :set ff結果 : 保存退出即可 :x運行, 沒有出錯 * Author: cpu_code * Date: 2020-07-29 19:07:52 * LastEditTime: 2020…

day25回溯算法part02| 216.組合總和III 17.電話號碼的字母組合

216.組合總和III 題目鏈接/文章講解 | 視頻講解 class Solution { public:vector<vector<int>> result;vector<int> path;int sum;void backtracking(int n, int k, int startindex) {// int sum accumulate(path.begin(), path.end(), 0);if (sum n &am…

HTTP --tcp

TCP TCP連接 tcp/ip是全球計算機以及網絡設備都在使用的一種常見的分組交換網絡分層協議集&#xff0c;客戶端可以打開一條tcp/ip連接&#xff0c;連接到可能運行在世界各地的服務器應用程序&#xff0c;一旦連接建立起來了&#xff0c;在客戶端和服務器的計算機之間交換的報…

@autowired 注入進來對象為null的幾種場景及解決辦法

一、原因 Autowired 注解用于自動注入 Spring 容器中管理的依賴對象。如果注入的對象為 null&#xff0c;可能是以下原因之一&#xff1a; 被注入的對象沒有被 Spring 容器管理&#xff0c;即沒有被 Spring 掃描到或者沒有配置相應的 。注入的對象在 Spring 容器中有多個實例…