matplotlib圖例中文亂碼以及坐標(biāo)負(fù)號(hào)顯示
??在圖片的標(biāo)簽名,標(biāo)題名或者圖例中出現(xiàn)中文時(shí),直接運(yùn)行會(huì)出現(xiàn)亂碼,文字顯示為框框
import
matplotlib
.
pyplot
as
plt
plt
.
figure
(
)
plt
.
title
(
"哈哈"
)
plt
.
show
(
)
快速解決辦法
??在導(dǎo)入模塊后加入下面代碼
plt
.
rcParams
[
'font.sans-serif'
]
=
[
'SimHei'
]
# 用來(lái)正常顯示中文標(biāo)簽
plt
.
rcParams
[
'axes.unicode_minus'
]
=
False
# 用來(lái)正常顯示負(fù)號(hào)
import
matplotlib
.
pyplot
as
plt
plt
.
rcParams
[
'font.sans-serif'
]
=
[
'SimHei'
]
plt
.
rcParams
[
'axes.unicode_minus'
]
=
False
plt
.
figure
(
)
plt
.
title
(
"哈哈"
)
plt
.
show
(
)
永久解決辦法
找到自己想要的中文字體
-
在系統(tǒng)中查找已有的字體(好處是不需要安裝):在“C:\Windows\Fonts”中選擇后綴為“.ttf”的中文字體并復(fù)制,這一步我選擇了黑體
-
在 fontpalace 上下載對(duì)應(yīng)版本的后綴為“.ttf”的字體,復(fù)制到“C:\Windows\Fonts”中安裝
把字體復(fù)制到matplotlib的字體文件中
??輸入下面命令找到matplotlib配置文件
print
(
matplotlib
.
matplotlib_fname
(
)
)
在“c:\program files\python37\lib\site-packages\matplotlib\mpl-data\matplotlibrc”的“font/ttf”文件夾中粘貼剛剛復(fù)制的字體,然后修改配置文件matplotlibrc,去掉以下三行代碼開(kāi)頭的#
font.family : sans-serif
font.sans-serif : SimHei, DejaVu Sans, Bitstream Vera Sans, ... # 這里注意要把字體名稱SimHei放在第一個(gè)
axes.unicode_minus : False # 修改為False,作用是解決負(fù)號(hào)的亂碼問(wèn)題
還要注意有的字體名稱并不是字體文件的名稱,可以查看字體文件的屬性(標(biāo)題)確認(rèn)一下
重新加載字體
??做完以上操作后執(zhí)行下面命令
from
matplotlib
.
font_manager
import
_rebuild
_rebuild
(
)
之后重啟python,很多時(shí)候這樣就解決了。
刪除matplotlib緩存文件
??如果仍然不能正常顯示輸入以下代碼
matplotlib
.
get_cachedir
(
)
在’C:\Users\sunch\.matplotlib’找到緩存文件夾并刪除該文件夾,之后重啟python,如果還是不行可以試試重啟電腦,我就是重啟了才可以,果然沒(méi)有什么是一次重啟解決不了的,如果有那就兩次
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
