matplotlib之輕松解決中文亂碼的問(wèn)題
matplotlib解決中文亂碼問(wèn)題
python里matplotlib模塊在畫(huà)圖方面用著十分爽,但是在圖中不能顯示中文,這里介紹一種十分簡(jiǎn)單的解決方法。
1. 在代碼開(kāi)始加入兩行代碼,即可成功解決。
#解決中文顯示問(wèn)題 plt.rcParams['font.sans-serif'] = ['KaiTi'] # 指定默認(rèn)字體 plt.rcParams['axes.unicode_minus'] = False # 解決保存圖像是負(fù)號(hào)'-'顯示為方塊的問(wèn)題
2.效果展示
# -*- coding: utf-8 -*- import matplotlib.pyplot as plt import numpy as np #解決中文顯示問(wèn)題 plt.rcParams['font.sans-serif'] = ['KaiTi'] # 指定默認(rèn)字體 plt.rcParams['axes.unicode_minus'] = False # 解決保存圖像是負(fù)號(hào)'-'顯示為方塊的問(wèn)題 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("愛(ài)你一萬(wàn)年") plt.show()
3.代碼加入前
4.代碼加入后
5.注:以上為Windows下的方法,Mac下的解決方式 為:
plt.rcParams['font.sans-serif'] = ['Arial Unicode MS']
Mac下matplotlib中文亂碼的解決
初次用了中文運(yùn)行,發(fā)現(xiàn)一直出現(xiàn)中文亂碼情況,即使加上了前綴還是亂碼。
參考了多方文章,最后解決。
建議如果有友友看過(guò)其他攻略,但還是不行的可以直接跳轉(zhuǎn)步驟6。
解決辦法
1.下載SimHei字體:http://www.fontpalace.com/font-details/SimHei/
2.運(yùn)行以下代碼,找到Matplotlib配置路徑。
import matplotlib matplotlib.matplotlib_fname()
我的得到的是:
/Users/s/anaconda3/lib/python3.10/site-packages/matplotlib/mpl-data/matplotlibrc(這里每個(gè)人用戶名后面會(huì)不一樣,請(qǐng)自己靈活調(diào)整)
3.訪問(wèn)到此路徑下,進(jìn)入font/ttf/。
把步驟1下載的字體粘貼進(jìn)去。
4.返回到步驟3的目錄下,使用文本編輯器打開(kāi)matplotlibrc(一般默認(rèn)就是文本編輯器,不確定的可以右鍵查看打開(kāi)方式)。
5.command+F 查找font.family: sans-serif,去掉前面的注釋符#;
繼續(xù)查font.sans-serif : ,在DejaVu Sans前添加SimHei
最后查找axes.unicode_minus,去掉注釋并將值設(shè)置為False
6.(很重要?。。┻\(yùn)行以下代碼:
from matplotlib.font_manager import _rebuild _rebuild()
測(cè)試
import matplotlib.pyplot as plt import numpy as np x = np.array(["小楊", "小羊", "美女小楊", "美女小羊不失眠"]) y = np.array([12, 22, 6, 18]) plt.barh(x,y) plt.show()
成功!
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python 實(shí)現(xiàn)登錄網(wǎng)頁(yè)的操作方法
今天小編就為大家分享一篇python 實(shí)現(xiàn)登錄網(wǎng)頁(yè)的操作方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-05-05如何使用Python進(jìn)行OCR識(shí)別圖片中的文字
這篇文章主要介紹了使用Python進(jìn)行OCR識(shí)別圖片中的文字 ,本文通過(guò)實(shí)例代碼加文字說(shuō)明的形式給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-04-04python 找出list中最大或者最小幾個(gè)數(shù)的索引方法
今天小編就為大家分享一篇python 找出list中最大或者最小幾個(gè)數(shù)的索引方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-10-10python中數(shù)組array和列表list的基本用法及區(qū)別解析
大家都知道數(shù)組array是同類型數(shù)據(jù)的有限集合,列表list是一系列按特定順序排列的元素組成,可以將任何數(shù)據(jù)放入列表,且其中元素之間沒(méi)有任何關(guān)系,本文介紹python中數(shù)組array和列表list的基本用法及區(qū)別,感興趣的朋友一起看看吧2022-05-05Python實(shí)現(xiàn)獲取磁盤(pán)剩余空間的2種方法
這篇文章主要介紹了Python實(shí)現(xiàn)獲取磁盤(pán)剩余空間的2種方法,結(jié)合具體實(shí)例形式分析了Python操作計(jì)算機(jī)硬件的相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-06-06python 利用jinja2模板生成html代碼實(shí)例
這篇文章主要介紹了python 利用jinja2模板生成html代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-10-10