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