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

Python常見庫(kù)matplotlib學(xué)習(xí)筆記之畫圖文字的中文顯示

 更新時(shí)間:2023年05月08日 09:47:08   作者:PellyKoo  
在Python中使用matplotlib或者plotnine模塊繪圖時(shí),常常出現(xiàn)圖表中無法正常顯示中文的問題,下面這篇文章主要給大家介紹了關(guān)于Python常見庫(kù)matplotlib學(xué)習(xí)筆記之畫圖文字的中文顯示的相關(guān)資料,需要的朋友可以參考下

系列文章目錄

前言

在數(shù)據(jù)可視化時(shí),常常需要使用圖例來解釋圖中不同元素的含義。在論文寫作時(shí)尤其是畢業(yè)論文寫作時(shí),需要圖中文字都顯示中文,數(shù)字都用新羅馬體。然而,matplotlib庫(kù)默認(rèn)是不支持中文顯示的,因此在繪制圖例時(shí),需要進(jìn)行一些設(shè)置才能顯示中文。本篇文章將介紹如何使用matplotlib庫(kù)繪制中文圖例。

一、matplotlib是什么?

Matplotlib是一個(gè)用于創(chuàng)建可視化圖表的Python庫(kù),它支持多種圖表類型,包括線圖、散點(diǎn)圖、條形圖、餅圖、3D圖等,是數(shù)據(jù)分析、科學(xué)計(jì)算和工程應(yīng)用中最常用的可視化工具之一。Matplotlib庫(kù)廣泛用于Python的數(shù)據(jù)分析、機(jī)器學(xué)習(xí)、科學(xué)計(jì)算等領(lǐng)域,以及研究、教育和工業(yè)生產(chǎn)中。它是一個(gè)開源軟件,可以在Python的多個(gè)版本中使用。
matplotlib庫(kù)的安裝很簡(jiǎn)單

pip install matplotlib

本文使用的matplotlib版本為3.6.2??梢暂斎胂旅娴拿钪苯影惭b該版本。

pip install matplotlib==3.6.2

二、使用方法

以下面一段簡(jiǎn)單代碼為示例,來講述如何改變繪圖中的文字。

import numpy as np
import matplotlib.pyplot as plt
# 繪制曲線
x = np.linspace(0, 2*np.pi, 100)
y1 = np.sin(x)
y2 = np.cos(x)
plt.plot(x, y1, label=u'正弦曲線')
plt.plot(x, y2, label=u'余弦曲線')
plt.xlabel('橫軸')
plt.ylabel('縱軸')
plt.title('函數(shù)')
# 添加圖例
plt.legend(loc='upper right')
# 顯示圖像
plt.show()

上面這段代碼實(shí)現(xiàn)了繪制正弦和余弦曲線在同一幅圖上,其顯示結(jié)果是下圖這樣的

可見如果不添加字體設(shè)置,橫縱坐標(biāo)及圖例的中文都是方框。

1.尋找所需要的字體

(1)下載字體

linux一般是不會(huì)自帶微軟雅黑、宋體、新羅馬這樣的字體的。我們需要去找。如果你身邊有windows系統(tǒng)的電腦,可以去下面幾個(gè)路徑下去拷貝

字體名稱路徑
微軟雅黑C:\Windows\Fonts\msyh.ttc
宋體C:\Windows\Fonts\simsun.ttc
新羅馬C:\Windows\Fonts\TIMES.TTF

懶得話也可以下載我上傳的字體包

字體文件

提取碼: ehtw

(2)放置到合適路徑

linux mint下的字體文件一般放在“/usr/share/fonts/truetype”,如果該目錄不存在,則可以手動(dòng)創(chuàng)建。一般字體文件都會(huì)在truetype文件夾下還有一層文件夾,才到字體文件。

以dejavu為例,就是這樣的。

所以我們也可以創(chuàng)建一個(gè)yahei的文件夾放置其字體文件

# 創(chuàng)建yahei文件夾
sudo mkdir /usr/share/fonts/truetype/yahei
# 拷貝字體文件到該文件夾下
sudo cp msyh.ttc /usr/share/fonts/truetype/yahei/

(3)刷新字體緩存

sudo fc-cache -f -v

(4)確認(rèn)字體文件是否已經(jīng)安裝

在終端輸入下面的代碼,可以看到微軟雅黑的安裝路徑

fc-list | grep -i yahei

同理,可以查看新羅馬的

fc-list | grep TIMES

查看宋體的

fc-list | grep SUN

(5)刪除matplotlib的緩存

這一步非常重要,有很多人都會(huì)忘記

rm rf ~/.cache/matplotlib

2.設(shè)置字體

(1)全局設(shè)置字體

將下面代碼加在之前的代碼前面即可。

# 設(shè)置字體
plt.rcParams['font.family'] = 'Microsoft YaHei'

最終代碼如下:

import numpy as np
import matplotlib.pyplot as plt

# 設(shè)置字體
plt.rcParams['font.family'] = 'Microsoft YaHei'
# plt.rcParams['font.family'] = 'SimSun'
# plt.rcParams['font.family'] = 'Times New Roman'

# 繪制曲線
x = np.linspace(0, 2*np.pi, 100)
y1 = np.sin(x)
y2 = np.cos(x)
plt.plot(x, y1, label=u'正弦曲線')
plt.plot(x, y2, label=u'余弦曲線')
plt.xlabel('橫軸')
plt.ylabel('縱軸')
plt.title('函數(shù)')

# 添加圖例
plt.legend(loc='upper right')

# 顯示圖像
plt.show()

運(yùn)行代碼,看到繪圖出現(xiàn)中文了。

plt.rcParams['font.family'] = 'Microsoft YaHei'這行注釋,替換成plt.rcParams['font.family'] = 'SimSun'便會(huì)顯示宋體。

如果開啟plt.rcParams['font.family'] = 'Times New Roman'。我們發(fā)現(xiàn)又出現(xiàn)框框了,顯然新羅馬不支持中文顯示,只有數(shù)字變成新羅馬體了。

對(duì)不同位置的目標(biāo),設(shè)置不同的字體,可以如下代碼修改

import numpy as np
import matplotlib.pyplot as plt
# 設(shè)置字體
plt.rcParams['font.family'] = 'SimSun'
plt.rcParams['font.family'] = 'Times New Roman'
# 繪制曲線
x = np.linspace(0, 2*np.pi, 100)
y1 = np.sin(x)
y2 = np.cos(x)
plt.plot(x, y1, label=u'正弦曲線')
plt.plot(x, y2, label=u'余弦曲線')
# 設(shè)置橫軸字體
plt.xlabel('橫軸', fontfamily='SimSun')
# 設(shè)置縱軸字體
plt.ylabel('縱軸', fontfamily='SimSun')
# 設(shè)置標(biāo)題字體
plt.title('函數(shù)', fontfamily='SimSun')
# 設(shè)置刻度字體
plt.xticks(fontfamily='Times New Roman')
plt.yticks(fontfamily='Times New Roman')
# 設(shè)置圖例字體
plt.legend(loc='upper right', fontsize=12, edgecolor='black', fancybox=False, framealpha=1, prop={'family': 'SimSun'})
# 顯示圖像
plt.show()

最終顯示結(jié)果

(2)局部設(shè)置字體(強(qiáng)烈推薦)

以上的設(shè)置到一臺(tái)新機(jī)器上就得重新拷貝或者下載字體文件,似乎有點(diǎn)麻煩?,F(xiàn)在介紹第二種方法,直接把自己放在運(yùn)行程序或者腳本的同級(jí)目錄下。這樣字體跟著代碼走,到一個(gè)新環(huán)境下只要安裝了matplotlib就可以直接運(yùn)行。

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm
# 指定字體
font_path = 'SIMSUN.TTC'  # 這里也可以填其他字體的絕對(duì)路徑,只填名稱表示本程序與該字體在同一級(jí)目錄下 
font_prop = fm.FontProperties(fname=font_path, size=12)
en_font_path = 'TIMES.TTF'  # 這里也可以填其他字體的絕對(duì)路徑,只填名稱表示本程序與該字體在同一級(jí)目錄下 
en_font_prop = fm.FontProperties(fname=en_font_path, size=12)
x = np.linspace(0, 2 * np.pi, 100)
y1 = np.sin(x)
y2 = np.cos(x)
plt.plot(x, y1, label=u'正弦曲線')
plt.plot(x, y2, label=u'余弦曲線')
plt.xlabel('橫軸', fontproperties=font_prop)
plt.ylabel('縱軸', fontproperties=font_prop)
plt.title('函數(shù)', fontproperties=font_prop)
plt.xticks(fontproperties=en_font_prop)
plt.yticks(fontproperties=en_font_prop)
plt.legend(loc='upper right', fontsize=12, edgecolor='black', fancybox=False, framealpha=1, prop=font_prop)
plt.show()

查看顯示結(jié)果

總結(jié)

本文簡(jiǎn)單介紹了如何使用matplotlib庫(kù)添加中文字體顯示的辦法。一種為全局設(shè)置的,一種為當(dāng)前程序設(shè)置的。

到此這篇關(guān)于Python常見庫(kù)matplotlib學(xué)習(xí)筆記之畫圖文字的中文顯示的文章就介紹到這了,更多相關(guān)matplotlib畫圖文字中文顯示內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python中的垃圾回收(GC)機(jī)制

    python中的垃圾回收(GC)機(jī)制

    這篇文章主要介紹了python中的GC機(jī)制,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-09-09
  • 淺談python常用程序算法

    淺談python常用程序算法

    這篇文章主要介紹了python常用程序算法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • 學(xué)會(huì)這29個(gè)常用函數(shù),你就是Pandas專家

    學(xué)會(huì)這29個(gè)常用函數(shù),你就是Pandas專家

    Pandas?無疑是?Python?處理表格數(shù)據(jù)最好的庫(kù)之一,但是很多新手無從下手,這里總結(jié)出最常用的?29?個(gè)函數(shù),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2022-11-11
  • 使用python自動(dòng)辦公的實(shí)例代碼

    使用python自動(dòng)辦公的實(shí)例代碼

    os模塊基本來說就是處理文件個(gè)一個(gè)模塊,或者說接口,說白了就是處理文件。這篇文章主要介紹了python自動(dòng)辦公的實(shí)現(xiàn)代碼,代碼簡(jiǎn)單易懂,需要的朋友可以參考下
    2021-11-11
  • 使用Python和xlwt向Excel文件中寫入中文的實(shí)例

    使用Python和xlwt向Excel文件中寫入中文的實(shí)例

    下面小編就為大家分享一篇使用Python和xlwt向Excel文件中寫入中文的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • pytest-sugar?執(zhí)行過程中顯示進(jìn)度條的腳本分享

    pytest-sugar?執(zhí)行過程中顯示進(jìn)度條的腳本分享

    Pytest-sugar是一款用來改善控制臺(tái)顯示的插件,增加了進(jìn)度條顯示,使得在用例執(zhí)行過程中可以看到進(jìn)度條,而且進(jìn)度條是根據(jù)用例是否通過標(biāo)注不同顏色,非常醒目,接下來通過本文給大家分享下pytest?sugar?顯示進(jìn)度條的腳本,感興趣的朋友一起看看吧
    2022-12-12
  • Python中print()函數(shù)的用法詳情

    Python中print()函數(shù)的用法詳情

    這篇文章主要介紹了Python中print()函數(shù)的用法詳情,Python中print()函數(shù)的方法是打印指定的內(nèi)容。在交互環(huán)境中輸入“help(print)”指令,可以顯示print()函數(shù)的使用方法,下面來看看具體的詳細(xì)內(nèi)容吧
    2022-02-02
  • 基于python實(shí)現(xiàn)rpc遠(yuǎn)程過程調(diào)用

    基于python實(shí)現(xiàn)rpc遠(yuǎn)程過程調(diào)用

    本文主要介紹了基于python實(shí)現(xiàn)rpc遠(yuǎn)程過程調(diào)用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • python動(dòng)態(tài)網(wǎng)站爬蟲實(shí)戰(zhàn)(requests+xpath+demjson+redis)

    python動(dòng)態(tài)網(wǎng)站爬蟲實(shí)戰(zhàn)(requests+xpath+demjson+redis)

    本文主要介紹了python動(dòng)態(tài)網(wǎng)站爬蟲實(shí)戰(zhàn)(requests+xpath+demjson+redis),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • Python2.5/2.6實(shí)用教程 入門基礎(chǔ)篇

    Python2.5/2.6實(shí)用教程 入門基礎(chǔ)篇

    本文方便有經(jīng)驗(yàn)的程序員進(jìn)入Python世界.本文適用于python2.5/2.6版本.
    2009-11-11

最新評(píng)論

阜南县| 同仁县| 房产| 馆陶县| 甘孜| 德令哈市| 隆化县| 徐闻县| 呼伦贝尔市| 固镇县| 平乡县| 芜湖市| 东兰县| 黔东| 濮阳县| 贵南县| 玉环县| 胶南市| 北流市| 自治县| 鄂托克旗| 图们市| 卓资县| 淮阳县| 阳朔县| 门源| 镇巴县| 共和县| 津南区| 介休市| 盘锦市| 元朗区| 施甸县| 壶关县| 威远县| 桓仁| 天镇县| 兰州市| 清丰县| 如东县| 资兴市|