python修改字体无效_matplotlib中修改默认字体
先介紹一下我的開發環境:
系統平臺: Win 10
anaconda 3:
matplotlib 3.1.3
修改matplotlib繪制的圖表的默認配置是有三種方案( 以修改為中文字體為例 ):
1、方案一: 通過 font_manager中的fontproperties來指定本機安裝的中文字庫,請注意確保本機對應的路徑下已安裝此字體(不足:只在當前cell中有效)
以下是我的測試代碼
# 中文文本解決方案
import matplotlib.font_manager as fm
myfont=fm.FontProperties(fname='C:\Windows\Fonts\simsun.ttc')
# 注意確保本機對應的路徑下已安裝此字體
plt.axis([0,5,0,20])
plt.title('我的第一個圖表',fontsize=20,fontproperties=myfont)
plt.xlabel('x')
plt.ylabel('y')
plt.text(1,1.5,'一',fontproperties=myfont)
plt.text(2,4.5,'二',fontproperties=myfont)
plt.text(3,9.5,'三',fontproperties=myfont)
plt.text(4,16.5,'四',fontproperties=myfont)
plt.plot([1,2,3,4],[1,4,9,16],'ro')
2、方案二: 通過指定 plt.style.use() 或 plt.rcParams 配置樣式,則對這個 plt 所繪制的所有的圖有效果,這兩種方案配置的文檔可以參考官網配置
(不足:重啟Jupyter的服務后,需要重新執行全局修改聲明)
以下是我的測試代碼
# 通過指定 plt.rcParams 配置樣式的話 修改全局默認圖表配置效果
plt.rcParams['font.sans-serif']=['SimHei'] #用來顯示正常中文的標簽
plt.rcParams['axes.unicode_minus']=False # 用來正常顯示負號
plt.axis([0,5,0,20])
plt.title('我的第一個圖表',fontsize=20)
plt.xlabel('x')
plt.ylabel('y')
plt.text(1,1.5,'一')
plt.text(2,4.5,'二')
plt.text(3,9.5,'三')
plt.text(4,16.5,'四',fontproperties=myfont)
plt.plot([1,2,3,4],[1,4,9,16],'ro')
3、方案三:通過修改 matplotlibrc 文件來實現全局配置. 具體的配置項請參考matplotlib的安裝目錄下的文件matplotlibrc,此文件的位置可以使用以下命令查看:
此文件的具體內容也可在matplotlib的官網查看
import matplotlib
matplotlib.matplotlib_fname()
這個文件在我這里所在位置:
D:\software\anaconda3\Lib\site-packages\matplotlib\mpl-data\matplotlibrc
找到這個文件并打開,分析內容,字體家族共有五種分別是:
#font.serif: DejaVu Serif, Bitstream Vera Serif, Computer Modern Roman, New Century Schoolbook, Century Schoolbook L, Utopia, ITC Bookman, Bookman, Nimbus Roman No9 L, Times New Roman, Times, Palatino, Charter, serif
#font.sans-serif: DejaVu Sans, Bitstream Vera Sans, Computer Modern Sans Serif, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif
#font.cursive: Apple Chancery, Textile, Zapf Chancery, Sand, Script MT, Felipa, cursive
#font.fantasy: Comic Neue, Comic Sans MS, Chicago, Charcoal, ImpactWestern, Humor Sans, xkcd, fantasy
#font.monospace: DejaVu Sans Mono, Bitstream Vera Sans Mono, Computer Modern Typewriter, Andale Mono, Nimbus Mono L, Courier New, Courier, Fixed, Terminal, monospace
默認的情況下,是沒有中文字體,Win10自帶了SimHei的中文字體(如若沒有可自行安裝一下),它屬于 sans-serif 字體家族。所以我配置成了
plt.rcParams[‘font.sans-serif’]=[‘SimHei’] #用來正常顯示中文標簽 ,
這樣就可以顯示中文了,但這種配置方案只針對當前的plt有效,另起一個進程就無效了.
找到其中的
#font.sans-serif: DejaVu Sans, Bitstream Vera Sans, Computer Modern Sans Serif, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif
修改成:
font.sans-serif : SimHei
注意: 在這個文件中所以以 # 開頭的部分都是系統的默認配置。
驗證以上全局配置是否成功:
import matplotlib
print(matplotlib.rc_params())
可以得到以下結果,表示配置成功:
原文鏈接:https://blog.csdn.net/weixin_44422604/article/details/107954093
總結
以上是生活随笔為你收集整理的python修改字体无效_matplotlib中修改默认字体的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: gaster字体转换器_gautami字
- 下一篇: android 字体css样式,css字