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

Matplotlib中文亂碼的兩種詳細解決方案

 更新時間:2022年07月12日 10:07:38   作者:??浦R云  
最近手頭有公司的數(shù)據(jù)資源,正好拿來練習了matplotlib的畫圖,期間碰到一個坑,就是中文在圖表中顯示的是方框,下面這篇文章主要給大家介紹了關于Matplotlib中文亂碼的兩種詳細解決方案,需要的朋友可以參考下

前言

Matplotlib 默認不支持中文字體,這因為 Matplotlib 只支持 ASCII 字符,但中文標注更加符合中國人的閱讀習慣。因此,本節(jié)重點講解如何在 Windows 環(huán)境下讓 Matplotlib 顯示中文。

Matplotlib中文亂碼

當不對 Matplotlib 進行設置,而直接使用中文時,繪制的圖像會出現(xiàn)中文亂碼。下面是一個含有中文亂碼的折線圖:

matplotlib折線圖

從上圖可以看出,本應該顯示在紅框內的中文字體沒有顯示出來(紅框是自己標注出來的),下面給出了兩種解決方案:第一種是臨時解決方案,第二種是一勞永逸的解決方案。

重寫配置文件

通過臨時重寫配置文件的方法,可以解決 Matplotlib 顯示中文亂碼的問題,代碼如下所示:

import matplotlib.pyplot as plt
plt.rcParams["font.sans-serif"]=["SimHei"] #設置字體
plt.rcParams["axes.unicode_minus"]=False #該語句解決圖像中的“-”負號的亂碼問題

將上述代碼添加到您的繪圖程序中,即可解決中文亂碼的問題。這是一種非常靈活、便捷的解決方法。完整的程序代碼如下:

#繪制折線圖
import matplotlib.pyplot as plt
plt.rcParams["font.sans-serif"]=["SimHei"] #設置字體
plt.rcParams["axes.unicode_minus"]=False #正常顯示負號
year = [2017, 2018, 2019, 2020]
people = [20, 40, 60, 70]
#生成圖表
plt.plot(year, people)
plt.xlabel('年份')
plt.ylabel('人口')
plt.title('人口增長')
#設置縱坐標刻度
plt.yticks([0, 20, 40, 60, 80])
#設置填充選項:參數(shù)分別對應橫坐標,縱坐標,縱坐標填充起始值,填充顏色
plt.fill_between(year, people, 20, color = 'green')
#顯示圖表
plt.show()

輸出結果如下:

matplotlib解決中文亂碼問題

不過上述解決方案適用于所有操作系統(tǒng),其唯一弊端是每編寫一個繪圖程序就要添加一次相同的代碼。

修改配置文件

下面介紹第二種方式:通過直接修改配置文件的方法,可以一勞永逸的解決 Matplotlib 的中文亂碼問題。注意此過程在 Windows 環(huán)境下進行。

Matplotlib 從配置文件 matplotlibrc 中讀取相關配置信息,比如字體、樣式等,因此我們需要對該配置文件進行更改。首先查看 matplotlibrc 所在的目錄,使用如下代碼確定目錄位置:

import matplotlib
matplotlib.matplotlib_fname()

輸出結果:

D:\python\python37\lib\site-packages\matplotlib\mpl-data\matplotlibrc

然后修改配置文件 matplotlibrc。打開配置文件后,找到以下信息:

#font.family: sans-serif
#font.serif: DejaVu Serif, Bitstream Vera Serif, Computer Modern Roman, New Century Schoolbook, Century Schoolbook L, Utopia, ITC Bookman, Bookman, Nimbus Roman No9 L, Times New Roman, Times, Palatino, Charter, serif

將上述配置項前面的#去掉,并修改的配置項,如下所示:

font.family   :  Microsoft YaHei, sans-serif
font.serif: Microsoft YaHei, DejaVu Serif, Bitstream Vera Serif, Computer Modern Roman, New Century Schoolbook, Century Schoolbook L, Utopia, ITC Bookman, Bookman, Nimbus Roman No9 L, Times New Roman, Times, Palatino, Charter, serif

注意,由于版本問題,上述內容配置信息可能存在一些差異,請自動忽略。

最后,在以下目錄中復制中文字體微軟雅黑:

C:\Windows\Fonts\Microsoft YaHei UI

復制完成后,將字體粘貼至以下路徑文件中:

D:\python\python37\lib\site-packages\matplotlib\mpl-data\fonts\ttf

字體粘貼后會出現(xiàn)一個 MSYH.ttc 的字體文件,如下所示:

編寫如下代碼進行測試:

import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-8, 8, 1024)
y1 = 0.618 * np.abs(x) - 0.8 * np.sqrt(64 - x ** 2)
y2 = 0.618 * np.abs(x) + 0.8 * np.sqrt(64 - x ** 2)
plt.plot(x, y1, color='r')
plt.plot(x, y2, color='r')
plt.title("測試",fontsize=20,color="b")
plt.show()

如果你對自己編寫的程序沒有強烈的“潔癖”,可以接受重復的代碼,那么建議您選擇第一種解決方法,因為這種方法靈活、輕便。當然您也可以選擇第二種方式,一勞永逸的解決中文亂碼問題。

總結

到此這篇關于Matplotlib中文亂碼的兩種詳細解決方案的文章就介紹到這了,更多相關Matplotlib中文亂碼解決內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 淺析Python的web.py框架中url的設定方法

    淺析Python的web.py框架中url的設定方法

    web.py是Python的一個輕量級Web開發(fā)框架,這里我們來淺析Python的web.py框架中url的設定方法,需要的朋友可以參考下
    2016-07-07
  • 在PYQT5中QscrollArea(滾動條)的使用方法

    在PYQT5中QscrollArea(滾動條)的使用方法

    今天小編就為大家分享一篇在PYQT5中QscrollArea(滾動條)的使用方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • 關于Python中的閉包詳解

    關于Python中的閉包詳解

    大家好,本篇文章主要講的是關于Python中的閉包詳解,感興趣的同學感快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • 簡單談談Python中的json與pickle

    簡單談談Python中的json與pickle

    下面小編就為大家?guī)硪黄唵握務凱ython中的json與pickle。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • PyQt5實現(xiàn)簡易計算器

    PyQt5實現(xiàn)簡易計算器

    這篇文章主要為大家詳細介紹了用PyQt5開發(fā)一個簡易的計算器,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • 使用Python實現(xiàn)跳一跳自動跳躍功能

    使用Python實現(xiàn)跳一跳自動跳躍功能

    這篇文章主要介紹了使用Python實現(xiàn)跳一跳自動跳躍功能,本文圖文并茂通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-07-07
  • python尋找含有關鍵字文件和刪除文件夾方式

    python尋找含有關鍵字文件和刪除文件夾方式

    這篇文章主要介紹了python尋找含有關鍵字文件和刪除文件夾方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • 基于Python執(zhí)行dos命令并獲取輸出的結果

    基于Python執(zhí)行dos命令并獲取輸出的結果

    這篇文章主要介紹了基于Python執(zhí)行dos命令并獲取輸出的結果,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-12-12
  • Python中dict支持多個key的方法新家

    Python中dict支持多個key的方法新家

    在Python中,字典(dict)是一種非常強大的數(shù)據(jù)結構,它允許我們通過鍵(key)來存儲和檢索值(value),本文將展示處理包含多個鍵的字典的方法,希望對大家有所幫助
    2024-11-11
  • 基于Pytorch的神經網絡之Regression的實現(xiàn)

    基于Pytorch的神經網絡之Regression的實現(xiàn)

    本文主要介紹了基于Pytorch的神經網絡之Regression的實現(xiàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03

最新評論

富阳市| 赤城县| 同江市| 靖州| 石柱| 策勒县| 平谷区| 桓台县| 克什克腾旗| 广州市| 德格县| 三原县| 元阳县| 昌图县| 辽宁省| 山西省| 婺源县| 边坝县| 汽车| 杭锦后旗| 固始县| 哈密市| 偏关县| 阿鲁科尔沁旗| 鸡西市| 岑溪市| 勃利县| 珲春市| 安化县| 岳阳县| 塔河县| 金山区| 措勤县| 镇平县| 钟山县| 绍兴县| 北宁市| 花垣县| 内丘县| 通化县| 保靖县|