matplotlib圖例中文亂碼

時間 2021-05-12 10:34:16

1樓:春無四時景

如果其他中文字型顯示沒問題,就圖例有問題的話,可能是因為你圖例設定的字型格式不是中文字型格式,比如Times New Roman,改成SimHei,就好了,我之前遇到的情況是這樣修改好的。

2樓:小宇宙

mac系統:設定編碼即可

import

matplotlib.pyplot

asplt

plt.

rcParams

["font.family"]=

'Arial Unicode MS'

3樓:hapmlpy li

似乎根本不需要這麼複雜的修改。

matplotlib設定字型是有點麻煩, axis, title, annotation..設定字型方法都不太一樣,但是知道它規律的就好弄了。

我常用到的就2種

第一種:fontdict

例如title的字型就是用fondict控制的。

title()的引數是

set_title(self, label, fontdict=None, loc=None, pad=None, *, y=None, **kwargs)[source]

裡面的fontdic就是。

文件裡說

就是說,你不設定的話,它預設用這個dic。你想改直接在這裡指定就好了,為啥要去翻人家目錄呢。。。

修改fontdic就像這樣:

# 宣告乙個fontdict

fontdic39;family' : 'Simsun',

'color' : 'darkred',

'weight' : 'normal',

'size' : 10

}#設定tilte是指定

plt.title('氪金', fontdict=fontdic)

第二種:fontproperties

對於設定軸、annotation等等都用font prooperties來設定。比如設定annotation的字型

from matplotlib import font_manager

#這裡的song.ttf是從網上下的,然後放在專案資料夾裡就行

fontpro = font_manager.FontProperties(fname="Song.ttf")

import seaborn as sns

# 從seaborn建乙個plot

p1 = sns.regplot(.. )

p1.textfontproperties=fontpro

}下面的圖就是用上面的方法做的

想讓fontdic和fontpro用一樣的字型,也就是title和annotation的字型一致,就在專案資料夾裡放個個simsun,然後將fontpro改成simsun 就行了

我從來沒折騰過什麼安裝目錄或配置檔案

這麼成熟的包怎麼還會讓你這麼折騰

與其折騰你的電腦,不如好好讀文件

4樓:

我看好多人方法好複雜,這裡給乙個極簡的辦法。

import matplotlib.pyplot as plt#設定matplotlib正常顯示中文

plt.rcParams['font.sans-serif'] = ['Arial Unicode MS']

再次呼叫plt的時候就正常顯示中文了

5樓:

這個問題有兩種解決辦法:

1. 每次繪圖時手動修改

2. 修改配置檔案,一勞永逸

詳細過程可以參考:

6樓:向我開炮

注意乙個小細節,在配置字型名字的時候有些和字型檔名不一致,常常會導致找不到對應的字型

我貼乙份字型檔案和字型名字的對應關係

檢視路徑~/.cache/matplotlib/fontList.json

7樓:震靈

很多人提到Microsoft YaHei,但是由於未知原因,在某些環境下無法正常使用。

強烈推薦使用SimHei(黑體),經測試,Windows10環境無需手動匯入字型。

配置matplotlibrc檔案的兩個屬性即可!

font.family:SimHei

font.serif:SimHei

8樓:阿沐

我設定是這樣的,不過圖例lable值是不行的,親測有效

優化:加上在plt.show()加上plt.legend(prop=font)之後,圖例lable的中文輸出也OK了

9樓:錢宇航

mac好像可以直接寫plt.rcParams['font.sans-serif'] = ['Arial Unicode MS']如果對字型要求不高的話。

10樓:

from

pylab

import

mplmpl

.rcParams

['font.sans-serif']=

['SimHei'

]# 指定預設字型

#知乎的選擇語言好不科學,應該把常用的幾個放在前面,再按拼音排序啊。

11樓:Color

1. 安裝字型 Microsoft YaHei, windows系統跳過

> Download Microsoft YaHei font for FREE

2. 獲取matplotlib的配置檔案路徑, 新增/修改配置 => font.family: Microsoft YaHei

> import matplotlib

> matplotlib.matplotlib_fname()> import matplotlib

> matplotlib.get_cachedir()

12樓:不痛不癢

**環境**:` Win10` `Python35 `解決辦法:

```python

plt.rcParams['font.sans-serif']=['SimHei'] #用來正常顯示中文標籤

plt.rcParams['axes.unicode_minus']=False#用來正常顯示負號

```反正這個回答裡面別的win上面實現的答案我都沒弄出來

13樓:linpq

今天也被這個問題折騰了一天,最後終於搞定了!

實驗環境

系統:CentOS7

Python版本:Python3.4

步驟一:檢視CentOS自帶的中文字型

fc-list :lang=zh

步驟二:檢視matplotlib配置檔案位置

>>> import matplotlib

>>> print matplotlib.matplotlib_fname()

假設得到的結果是/usr/local/lib/python3.4/site-packages/matplotlib/mpl-data/matplotlibrc

步驟三:複製CentOS字型檔案到matplotlib字型目錄下

sudo cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/local/lib/python3.4/site-packages/matplotlib/mpl-data/fonts/ttf

步驟四:編輯matplotlib目錄中的font_manager.py檔案,使matplotlib支援ttc字型

vim /usr/local/lib/python2.7/dist-packages/matplotlib/font_manager.py

修改return {'ttf': ('ttf', 'otf'),為return {'ttf': ('ttf', 'otf', 'ttc'),

注: 大概在159-170行之間

14樓:

按照上述諸位答者的方式,嘗試了多種不同組合得以解決,將具體的做法說明:

windows下虛擬機器,在ubuntu中利用matplotlib顯示字型的問題,有可能是matplotlib中沒有該中文字型:

1在windows系統將c/windows/Fonts中的 Microsoft YaHei UI 檔案進行複製

2將檔案複製到ubuntu的下面兩個資料夾下:

i) /usr/share/fonts此為系統字型資料夾

ii) 複製在matplotlib的字型資料夾ttf下

/home/haichong/anaconda2/lib/python2.7/site-packages/matplotlib/mpl-data/fonts/ttf(個人ubuntu的路徑)

3修改matplotlibrc中的內容查詢路徑的方法:採用ipython

Import matplotlib

matplotlib.matplotlib_fname可得到如下路徑)

/home/haichong/anaconda2/lib/python2.7/site-packages/matplotlib/mpl-data/matplotlibrc

在matplotlibrc中將檔案中的

#font.family: sans-serif

去掉注釋,修改為

font.family: Microsoft YaHei

15樓:宗我

我用的是@Michael翔的方法,報錯找不到字型。後來把字型ttf檔案放進matplotlib 的font資料夾裡成功了。

注意:用ttf而不是 ttc ,好像支援ttf 有問題。

16樓:胖肉寶

自己電腦測試可行:

平台:windows,python2.7

步驟一:開啟設定檔案

import matplotlib

matplotlib.matplotlib_fname()會顯示matplotlibrc檔案的位址

步驟二:修改matplotlibrc檔案

將檔案中的

#font.family: sans-serif去掉注釋,修改為

font.family: Microsoft YaHei可顯示為中文

17樓:李小旺

解決Matplotlib繪製的圖表不能正確顯示中文

以下加上我自己的實測經驗:

修改配置檔案(僅限於Ubuntu)。

在我的系統中,這個檔案的路徑為/usr/local/lib/python3.4/dist-packages/matplotlib/mpl-data/matplotlibrc,或者你也可以用sudo find / -name matplotlibrc自己搜尋出來。

開啟matplotlibrc檔案需要修改許可權: sudo gedit matplotlibrc

1. 開啟這個檔案,先找到 #font.family,去掉這行開頭的「#」

2. 再找到#font.sans-serif,同樣去掉「#」,並且在「:

」之後新增系統中存在的中文字型。這裡說一下怎麼找系統中的中文字型,輸入命令fc-list :lang=zh-cn,就可以看到系統中的中文字型了,注意list與冒號之間有乙個空格,我這裡選用的字型是「FangSong」, 中文字型的名字與中文字庫案的名字是不相同,「FangSong」即仿宋對應的中文字庫名為simfang.

ttf。

3. 新增完字型名字,再找到#axes.unicode_minus,去掉「#」,並把「True」改成「False」,這樣就可以正常顯示負號

Matplotlib 如何畫散點圖的圖例?

Suranyi usr bin env python coding utf 8 version Python 3.6.3 on win32 author Suranyi time 2018 1 16 import numpy as np import matplotlib.pyplot as plt...

Matplotlib繪圖基礎常用設定如中文顯示

日本人也寫漢字,你怎麼學日語漢字就怎麼學港語漢字好了 另外,這句話被解讀為不要炸香港,沒邏輯,按照1515的地圖來看,如果中港分離來看,肯定是炸中國,不炸香港。結果被自乾五引為 自己人 自乾五是一種壞 杜薔薇老公 翻譯 標語寫英文,而非正體中文,明顯不是寫給我們看。可能是寫給伊斯蘭國 IS 聖戰勇士...

Matplotlib 視覺化系列一

你說的經驗公式是數學上的概念?還是工程實踐或生活中中的概念?經驗公式,用起來簡單 便捷,這是它的魅力。怎麼得來的,這要看是什麼樣的經驗公式。有些經驗公式,靠的是實踐經驗,應用的是統計規律。工程實踐上的很多經驗公式,實際上往往是統計規律與理論推演的結合,這樣會更可靠一些 有些就是理論上在一定條件下作出...