最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

解決Matplotlib中文顯示亂碼的完整教程

 更新時(shí)間:2024年12月06日 08:30:44   作者:一點(diǎn)一木  
在使用 Matplotlib 繪制圖表時(shí),很多開發(fā)者都會(huì)遇到中文無(wú)法正常顯示的問題,默認(rèn)情況下,Matplotlib 并不支持中文字符,需要手動(dòng)設(shè)置字體,這篇博客將教你如何解決 Matplotlib 繪圖顯示中文的常見問題,確保中文字符能夠在圖表中正確顯示,需要的朋友可以參考下

問題描述

當(dāng)我們?cè)?nbsp;Matplotlib 中使用中文字符時(shí),通常會(huì)遇到如下問題:中文標(biāo)題、標(biāo)簽或數(shù)據(jù)無(wú)法正確顯示,而是出現(xiàn)亂碼或方框。以下是一個(gè)簡(jiǎn)單的示例代碼:

示例代碼

import matplotlib.pyplot as plt
?
# 數(shù)據(jù)
categories = ['A類', 'B類', 'C類', 'D類']
values = [3, 7, 5, 10]
?
# 創(chuàng)建柱狀圖
plt.bar(categories, values)
?
# 設(shè)置標(biāo)題和標(biāo)簽
plt.title('柱狀圖', fontsize=16)  # 中文標(biāo)題
plt.xlabel('類別', fontsize=12)  # 中文X軸標(biāo)簽
plt.ylabel('數(shù)量', fontsize=12)  # 中文Y軸標(biāo)簽
?
# 顯示圖表
plt.show()

運(yùn)行結(jié)果

在沒有正確配置字體的情況下,執(zhí)行上述代碼后,中文字符將無(wú)法正常顯示,可能出現(xiàn)亂碼或方框,示例如下:

解決方案

  • 下載并安裝中文字體

    Matplotlib 默認(rèn)使用的字體庫(kù)不包括中文字體。為了解決這個(gè)問題,我們需要下載一個(gè)支持中文的字體,如 SimHei(黑體)。

    可以使用 wget 下載字體文件:

!wget -O simhei.ttf "https://www.wfonts.com/download/data/2014/06/01/simhei/chinese.simhei.ttf"
# 或
!wget -O simhei.ttf "https://github.com/StellarCN/scp_zh/blob/master/fonts/SimHei.ttf"

設(shè)置 Matplotlib 使用中文字體

下載字體后,接下來(lái)要讓 Matplotlib 使用該字體。通過 font_manager 來(lái)加載新的字體,并通過 rc 設(shè)置默認(rèn)字體。

import matplotlib
?
# 添加下載的字體文件
matplotlib.font_manager.fontManager.addfont('chinese.simhei.ttf')
?
# 設(shè)置 Matplotlib 使用 SimHei 字體
matplotlib.rc('font', family='SimHei')

驗(yàn)證字體是否成功加載

你可以通過以下代碼檢查 Matplotlib 是否成功加載了 SimHei 字體:

import matplotlib.font_manager as fm
?
# 打印系統(tǒng)中所有可用的字體
for font in fm.fontManager.ttflist:
    print(font.name)
  • 在輸出中,如果顯示 SimHei 字體,說(shuō)明字體安裝成功。

  • 設(shè)置中文字體顯示

    雖然上述步驟已經(jīng)加載了 SimHei 字體,但為了確保 Matplotlib 正常顯示中文標(biāo)簽,還需要設(shè)置 rcParams 來(lái)指定默認(rèn)字體為 SimHei,并確保負(fù)號(hào)可以正常顯示。

# 設(shè)置 Matplotlib 使用 SimHei 字體來(lái)顯示中文
plt.rcParams['font.sans-serif'] = ['SimHei']  # 正常顯示中文標(biāo)簽
plt.rcParams['axes.unicode_minus'] = False  # 正常顯示負(fù)號(hào)

完整示例

將上述設(shè)置整合到一起,形成完整的代碼如下:

import matplotlib.pyplot as plt
import matplotlib
?
# 設(shè)置字體,確保中文顯示正常(非必須添加此代碼)
matplotlib.rcParams['font.sans-serif'] = ['SimHei']
matplotlib.rcParams['axes.unicode_minus'] = False
?
# 數(shù)據(jù)
categories = ['A類', 'B類', 'C類', 'D類']
values = [3, 7, 5, 10]
?
# 創(chuàng)建柱狀圖
plt.bar(categories, values)
?
# 設(shè)置標(biāo)題和標(biāo)簽
plt.title('柱狀圖', fontsize=16)  # 中文標(biāo)題
plt.xlabel('類別', fontsize=12)  # 中文X軸標(biāo)簽
plt.ylabel('數(shù)量', fontsize=12)  # 中文Y軸標(biāo)簽
?
# 顯示圖表
plt.show()

最終效果

經(jīng)過上述配置后,中文字符應(yīng)該能夠正常顯示在圖表中,效果如下所示:

擴(kuò)展:Matplotlib 配置與調(diào)試

查看 Matplotlib 字體緩存目錄

如果你遇到字體加載問題,可以查看 Matplotlib 的緩存目錄,確保字體已經(jīng)成功安裝并被 Matplotlib 識(shí)別。

import matplotlib as mpl
print(mpl.get_cachedir())

這將返回緩存目錄的路徑,幫助你調(diào)試字體加載問題。

其他字體支持

除了 SimHei(黑體)之外,Matplotlib 還支持多種其他中文字體,如 Microsoft YaHei(微軟雅黑),F(xiàn)angSong(仿宋),以及系統(tǒng)自帶的其他字體。你可以選擇合適的字體來(lái)調(diào)整圖表樣式。

總結(jié)

通過上述步驟,我們可以解決 Matplotlib 中中文顯示問題。確保字體安裝和配置正確,不僅可以提升圖表的美觀性,還能增強(qiáng)圖表的可讀性。希望這篇文章能夠幫助你更好地在 Python 中使用 Matplotlib 繪制中文圖表。

以上就是解決Matplotlib中文顯示亂碼的完整教程的詳細(xì)內(nèi)容,更多關(guān)于Matplotlib中文亂碼的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 使用 Python 的 pprint庫(kù)格式化和輸出列表和字典的方法

    使用 Python 的 pprint庫(kù)格式化和輸出列表和字典的方法

    pprint是"pretty-print"的縮寫,使用 Python 的標(biāo)準(zhǔn)庫(kù) pprint 模塊,以干凈的格式輸出和顯示列表和字典等對(duì)象,這篇文章主要介紹了如何使用 Python 的 pprint庫(kù)格式化和輸出列表和字典,需要的朋友可以參考下
    2023-05-05
  • python字符串常規(guī)操作大全

    python字符串常規(guī)操作大全

    這篇文章主要給大家介紹了關(guān)于python字符串常規(guī)操作的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • python 調(diào)用win32pai 操作cmd的方法

    python 調(diào)用win32pai 操作cmd的方法

    下面小編就為大家?guī)?lái)一篇python 調(diào)用win32pai 操作cmd的方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧
    2017-05-05
  • python爬蟲解決驗(yàn)證碼的思路及示例

    python爬蟲解決驗(yàn)證碼的思路及示例

    這篇文章主要介紹了python爬蟲解決驗(yàn)證碼的思路及示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • Python統(tǒng)計(jì)字符串中英文字母、空格、數(shù)字和其它字符的個(gè)數(shù)

    Python統(tǒng)計(jì)字符串中英文字母、空格、數(shù)字和其它字符的個(gè)數(shù)

    這篇文章主要給大家介紹了關(guān)于Python統(tǒng)計(jì)字符串中英文字母、空格、數(shù)字和其它字符的個(gè)數(shù)的相關(guān)資料,本文實(shí)例講述了python統(tǒng)計(jì)字符串中指定字符出現(xiàn)次數(shù)的方法,需要的朋友可以參考下
    2023-06-06
  • python安裝本地whl的實(shí)例步驟

    python安裝本地whl的實(shí)例步驟

    在本篇文章里小編給大家整理的是關(guān)于python安裝本地whl的實(shí)例步驟,有需要的朋友們可以學(xué)習(xí)下。
    2019-10-10
  • Python+Appium實(shí)現(xiàn)自動(dòng)搶微信紅包

    Python+Appium實(shí)現(xiàn)自動(dòng)搶微信紅包

    不知從何時(shí)開始微信紅包橫空出世,對(duì)于網(wǎng)速和手速慢的人只能在一旁觀望,做為python的學(xué)習(xí)者就是要運(yùn)用編程解決生活和工作上的事情。于是我用python解決我們的手速問題python實(shí)現(xiàn)自動(dòng)搶微信紅包,至于網(wǎng)速慢得那就只能自己花錢提升了。
    2021-05-05
  • Django單元測(cè)試中Fixtures用法詳解

    Django單元測(cè)試中Fixtures用法詳解

    這篇文章主要介紹了Django單元測(cè)試中Fixtures用法,通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-02-02
  • python3.5+tesseract+adb實(shí)現(xiàn)西瓜視頻或頭腦王者輔助答題

    python3.5+tesseract+adb實(shí)現(xiàn)西瓜視頻或頭腦王者輔助答題

    這篇文章主要介紹了python3.5+tesseract+adb實(shí)現(xiàn)西瓜視頻或頭腦王者輔助答題,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • Django項(xiàng)目如何配置Memcached和Redis緩存?選擇哪個(gè)更有優(yōu)勢(shì)?

    Django項(xiàng)目如何配置Memcached和Redis緩存?選擇哪個(gè)更有優(yōu)勢(shì)?

    這篇文章主要介紹了Django項(xiàng)目如何配置Memcached和Redis緩存,幫助大家更好的理解和學(xué)習(xí)使用django框架,感興趣的朋友可以了解下
    2021-04-04

最新評(píng)論

南昌县| 托克逊县| 郯城县| 马山县| 胶南市| 四川省| 绿春县| 新竹市| 武川县| 抚宁县| 改则县| 公安县| 肇州县| 涿州市| 镇巴县| 杭州市| 共和县| 旬阳县| 双鸭山市| 白水县| 丹凤县| 泰州市| 乌鲁木齐市| 宣城市| 兴仁县| 渭源县| 普宁市| 宜宾市| 尉犁县| 吴堡县| 南部县| 宣威市| 安阳市| 定日县| 松溪县| 宁都县| 化德县| 湟源县| 揭阳市| 武强县| 巫山县|