使用Matplotlib顯示中文的方法

1 問題提出

使用圖1所示的代碼進行matplotlib繪圖時,因為其默認不支持中文,此時無法顯示正確內容,如圖2所示。

圖1 matplotlib繪圖繪圖代碼

圖2 ?matplotlib無法顯示中文

2 問題解決

2.1 設置全局字體

在圖1所示的代碼中,第13-15行分別設置了matplotlib繪制圖的標題、橫坐標標簽和縱坐標標簽,如果顯示以上內容的字體是相同的,則可以通過設置全局字體的方式來解決顯示漢字問題。

2.1.1 創建字體類FontProperties的實例

字體類FontProperties在matplotlib.font_manager模塊中定義,該類用來存儲和處理字體的屬性,通過創建其實例來指定使用的字體字號等屬性,代碼如圖3所示。

圖3 創建字體類FontProperties實例的代碼

其中,第4行代碼從matplotlib.font_manager模塊中導入FontProperties類;第5行代碼指定字體文件的位置;第6行代碼創建了FontProperties類的實例font,使用font_path指定的字體文件,字體大小是15。

相關鏈接1 Windows10系統中的字體文件位置是“C:\\Windows\\Fonts”,可以在該位置上選擇系統中已經安裝好的字體文件。

注意1 圖3中第5行代碼使用自定義的字體文件1.ttf,因為指定的是相對路徑,該字體文件應當與源代碼文件在同一路徑下。

2.1.2 設置matplotlib使用的字體參數

Matplotlib 使用rcParams來控制各種默認參數,rcParams['font.family']表示使用的字體。設置matplotlib使用的字體參數的代碼如圖4所示。

圖4 設置matplotlib使用的字體參數的代碼

第8行代碼導入matplotlib模塊,第9行代碼將rcParams['font.family']設置為font.get_name()的返回值,font即為圖3中創建的FontProperties實例,通過該實例調用的get_name()方法獲取到的是圖3中指定的字體名。

2.1.3 代碼運行效果

通過以上設置之后,代碼運行效果如圖5所示。

圖5 代碼運行效果

2.2 設置局部字體

如果matplotlib繪制圖的標題、x軸標簽和y軸標簽使用不一樣的字體,此時可以通過設置局部字體來實現。

2.2.1 定義局部字體

設置局部字體的代碼如圖6所示。

圖6 設置局部字體的代碼

其中,第5-6行設置了用于顯示標題的字體title_font;第7-8行設置了用于顯示x軸標簽的字體x_font;第9-10行設置了用于顯示y軸標簽的字體y_font。

2.2.2 設置字體

使用如圖7所示的代碼為不同的標簽設置不同的字體。

圖7 設置字體的代碼

為set_title()、set_xlabel()和set_ylabel()方法添加fontproperties參數,并將該參數設置為圖6中創建的不同字體。

2.2.3 代碼運行效果

設置不同字體的代碼運行效果如圖8所示。

圖8 代碼運行效果

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

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

相關文章

詳解opencv resize之INTER_LINEAR和INTER_AREA

一。先簡單介紹一下resize的用法 src:輸入圖, dst:輸出圖 dsize:輸出圖的寬高,如果dsize不為空(即寬高都不是0),則以dsize為準進行resize。 fx, fy是放大縮小的比例,是…

UnityDemo-TheBrave-制作筆記

這是我跟著b站up主MStudio的視頻學習制作的,大體上沒有去做一些更新的東西,這里只是一個總的總結。在文章的最后,我會放上可以游玩該游戲的鏈接和exe可執行文件,不過沒有對游戲內容進行什么加工,只有基本的功能實現罷了…

使用LSTM預測股票收盤價

在金融數據預測中,LSTM(長短期記憶網絡)憑借其在時間序列數據建模中的優勢,成為了分析股票價格趨勢的熱門選擇。本篇博客將以完整的代碼實現為例,展示如何利用LSTM網絡對股票收盤價進行預測,并從數據處理到…

模擬SpringIOCAOP

一、IOC容器 Ioc負責創建,管理實例,向使用者提供實例,ioc就像一個工廠一樣,稱之為Bean工廠 1.1 Bean工廠的作用 先分析一下Bean工廠應具備的行為 1、需要一個獲取實例的方法,根據一個參數獲取對應的實例 getBean(…

預編譯SQL

預編譯SQL 預編譯SQL是指在數據庫應用程序中,SQL語句在執行之前已經通過某種機制(如預編譯器)進行了解析、優化和準備,使得實際執行時可以直接使用優化后的執行計劃,而不需要每次都重新解析和編譯。這么說可能有一些抽…

Centos9 + Docker 安裝 MySQL8.4.0 + 定時備份數據庫到本地

Centos9 + Docker 安裝 MySQL8.4.0 + 定時備份數據庫到本地 創建目錄,創建配置文件啟動容器命令定時備份MySQL執行腳本Linux每日定時任務命令文件內參數其他時間參數AT一次性定時任務創建目錄,創建配置文件 $ mkdir -p /opt/mysql/conf$ vim /opt/mysql/conf/my.cnf[mysql] #…

軟件測試預備知識⑥—搭建Web服務器

在軟件測試的廣闊領域中,搭建Web服務器是一項極為關鍵的技能。它不僅有助于模擬真實的應用環境,方便我們對Web應用進行全面且深入的測試,還能讓測試人員更好地掌控測試場景,提升測試效率與質量。接下來,讓我們一同深入…

計算機視覺算法實戰——打電話行為檢測

?個人主頁歡迎您的訪問 ?期待您的三連 ? ?個人主頁歡迎您的訪問 ?期待您的三連 ? ?個人主頁歡迎您的訪問 ?期待您的三連? ??????? ??????????????? ?????? ? 1. 引言?? 隨著智能手機的普及,打電話行為檢測成為了計算機視…

事務的隔離級別和MDL

文章目錄 說明不同隔離級別可能發生的現象關鍵現象解釋MDL(元數據鎖,Metadata Lock)MDL 的作用MDL 的工作原理MDL 鎖的常見場景如何避免 MDL 阻塞 說明 本文章由大模型對話整理而來,如果有錯誤之處,請在評論區留言指正…

Linux第二課:LinuxC高級 學習記錄day01

0、大綱 0.1、Linux 軟件安裝,用戶管理,進程管理,shell 命令,硬鏈接和軟連接,解壓和壓縮,功能性語句,結構性語句,分文件,make工具,shell腳本 0.2、C高級 …

單片機存儲與計算機存儲:從微小到龐大的數據世界

單片機存儲與計算機存儲:從微小到龐大的數據世界 在現代電子設備中,存儲是至關重要的組成部分。無論是小巧的單片機,還是功能強大的計算機,存儲都扮演著不可或缺的角色。然而,單片機和計算機的存儲架構卻有著天壤之別…

ISP流程--去馬賽克詳解

前言 本期我們將深入討論ISP流程中的去馬賽克處理。我們熟知,彩色圖像由一個個像元組成,每個像元又由紅、綠、藍(RGB)三通道構成。而相機傳感器只能感知光的強度,無法直接感知光譜信息,即只有亮暗而沒有顏色…

阿里云-通義靈碼:在 PyCharm 中的強大助力(下)

目錄 六.通義靈碼在 PyCharm 中的優勢與不足 1.優勢 (1).提高開發效率 (2).提升代碼質量 (3).易于使用 (4).不斷學習和改進 2.不足 (1).依賴網絡 (2).準確性有待提高 (3).局限性 七.未來發展展望 1.提高準確性和可靠性 2.與其他工具的集成 3.智能化程度的提升 八…

開源項目stable-diffusion-webui部署及生成照片

參考鏈接 https://www.freedidi.com/13133.html 基礎環境部署 python 官網鏈接 Python Release Python 3.10.6 | Python.org 下載 Python 3.10.6 版本安裝包 下載好后雙擊 點擊安裝,這里需要選擇一下,把環境變量加上。(這里是默認安裝到C盤…

【芯片封測學習專欄 -- 單 Die 與 多Die(Chiplet)介紹】

請閱讀【嵌入式開發學習必備專欄 Cache | MMU | AMBA BUS | CoreSight | Trace32 | CoreLink | ARM GCC | CSH】 文章目錄 Overview單個Die(Monolithic Die)多個Die(Chiplet Architecture or Heterogeneous SoC)如何判斷一個SoC是…

Windows 安裝 Docker 和 Docker Compose

🚀 作者主頁: 有來技術 🔥 開源項目: youlai-mall ︱vue3-element-admin︱youlai-boot︱vue-uniapp-template 🌺 倉庫主頁: GitCode︱ Gitee ︱ Github 💖 歡迎點贊 👍 收藏 ?評論 …

java_將數據存入elasticsearch進行高效搜索

使用技術簡介: (1) 使用Nginx實現反向代理,使前端可以調用多個微服務 (2) 使用nacos將多個服務管理關聯起來 (3) 將數據存入elasticsearch進行高效搜索 (4) 使用消息隊列rabbitmq進行消息的傳遞 (5) 使用 openfeign 進行多個服務之間的api調用 參…

Github Copilot學習筆記

(一)Prompt Engineering 利用AI工具生成prompt設計好的prompt結構使用MarkDown語法,按Role, Skills, Constrains, Background, Requirements和Demo這幾個維度描述需求。然后收輸入提示詞:作為 [Role], 擁有 [Skills], 嚴格遵守 […

android分區和root

線刷包內容: 線刷包是一個完整的android鏡像,不但包括android、linux和用戶數據,還包括recovery等。當然此圖中沒有recovery,但是我們可以自己刷入一個。 主要分區 system.img 系統分區,包括linux下主要的二進制程序。 boot.img…

RabbitMQ基礎(簡單易懂)

RabbitMQ高級篇請看: RabbitMQ高級篇-CSDN博客 目錄 什么是RabbitMQ? MQ 的核心概念 1. RabbitMQ 的核心組件 2. Exchange 的類型 3. 數據流向說明 如何安裝RabbitQueue? WorkQueue(工作隊列): Fa…