reference:
Mac OS系統(tǒng)下實現(xiàn)python matplotlib包繪圖顯示中文(親測有效)_mac plt 中文值-CSDN博客
module ‘matplotlib.font_manager‘ has no attribute ‘_rebuild‘解決方法_font_manager未解析-CSDN博客
# 問題描述(笑死 顯而易見
# solve
找到本地字體所在的路徑
>>> import matplotlib
>>> print(matplotlib.matplotlib_fname())
/CtripSpider-master/venv2/lib/python3.11/site-packages/matplotlib/mpl-data/matplotlibrc
聚焦搜索mlp-data文件夾
預覽字體,如果有中文字體Heiti TC:
plt.rcParams['font.sans-serif']= ['Heiti TC']#防止中文亂碼
plt.rcParams['axes.unicode_minus']=False#解決負號'-'顯示為方塊的問題
如果沒有修改
- 下載中文字體
Download SimHei Font - Free Font Download - FontPalace.com
拷貝到該文件夾下
- matplotlibrc文件里的三個參數(shù)
查看當前系統(tǒng)中的字體
font_list=sorted([f.name for f in matplotlib.font_manager.fontManager.ttflist])
for i in font_list:
print(i)
沒有SimHei
- 告訴python 添加了新字體
from matplotlib.font_manager import _rebuild
——rebuild()
or(反正都報錯 兩種都一樣的
import matplotlib.font_manager as font_manager
font_manager._rebuild()
出問題了,報錯沒有 _rebuild 屬性
- 替代方案 都是為了清除緩存 重新載入
import shutil
import matplotlib
shutil.rmtree(matplotlib.get_cachedir())
- 重啟內(nèi)核
- 繼續(xù)查看字體有沒得裝上 查看當前matplotlib所有可用字體
for font in font_manager.fontManager.ttflist:
print(font)
import matplotlib.font_manager
matplotlib.font_manager.findSystemFonts(fontpaths=None, fontext='ttf')
有宋體的
出現(xiàn)這一大堆字,沒一個支持中文,沒一個我安裝的字體
SimHei字體文件拽過來(拽不過來,可能因為是系統(tǒng)盤叭
但是偶然發(fā)現(xiàn)了系統(tǒng)里的中文字體,改改試試
蒽,一如既往,還是不對
以為是因為字體文件的后綴的問題。(.ttc? .ttf)
累了 又找了一段代碼 查看系統(tǒng)的字體
import matplotlib.font_manager
from IPython.core.display import HTML
def make_html(fontname):
return "<p>{font}: <span style='font-family:{font}; font-size: 24px;'>{font}</p>".format(font=fontname)
code = "\n".join([make_html(font) for font in sorted(set([f.name for f in matplotlib.font_manager.fontManager.ttflist]))])
HTML("<div style='column-count: 2;'>{}</div>".format(code))
# print(code)
print(HTML("<div style='column-count: 2;'>{}</div>".format(code)))
錯誤,真的改不出來一點。算了。
=====
笑死,還是回到最開始的問題
module ‘matplotlib.font_manager‘ has no attribute ‘_rebuild‘解決方法
import shutil
import matplotlib
import matplotlib.font_manager as font_manager
shutil.rmtree(matplotlib.get_cachedir())
for font in font_manager.fontManager.ttflist:
print(font)
SimHei字體有了
真不放心,又用第二種方法檢查SimHei是不是真的安裝好了
import matplotlib
import matplotlib.font_manager as font_manager
print(matplotlib.matplotlib_fname())
font_list=sorted([f.name for f in matplotlib.font_manager.fontManager.ttflist])
for i in font_list:
print(i)
這次真的在了文章來源:http://www.zghlxwxcb.cn/news/detail-839542.html
6,圖還是畫不出來一點文章來源地址http://www.zghlxwxcb.cn/news/detail-839542.html
到了這里,關(guān)于(未解決)macOS matplotlib 中文是方框的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!