淺談matplotlib默認(rèn)字體設(shè)置探索
控制默認(rèn)字體的設(shè)置
根據(jù)官方文檔https://matplotlib.org/tutorials/text/text_props.html#default-font可知:
The base default font is controlled by a set of rcParams
默認(rèn)字體是由一組rcParams控制的。
rcParam | usage |
---|---|
‘font.family' | List of either names of font or {‘cursive', ‘fantasy', ‘monospace', ‘sans', ‘sans serif', ‘sans-serif', ‘serif'} |
‘font.style' | The default style, ex ‘normal', ‘italic' |
‘font.variant' | Default variant, ex ‘normal', ‘small-caps' (untested) |
‘font.stretch' | Default stretch, ex ‘normal', ‘condensed' (incomplete) |
‘font.weight' | Default weight. Either string or integer |
‘font.size' | Default font size in points. Relative font sizes (‘large', ‘x-small') are computed against this size |
我們最關(guān)心的當(dāng)然是'font.family','font.family'的取值有三種:
- 單一字體名稱。
- 字體名稱列表。
- {'cursive', 'fantasy', 'monospace', 'sans', 'sans serif', 'sans-serif', 'serif'}中的某一個(gè)值。
對(duì)于字體名稱,可以通過(guò)ttflist獲取。
from matplotlib.font_manager import fontManager fontManager.ttflist
對(duì)于{'cursive', 'fantasy', 'monospace', 'sans', 'sans serif', 'sans-serif', 'serif'} ,它與實(shí)際字體名稱之間的映射關(guān)系由以下rcParams控制:
family alias | rcParam with mappings |
---|---|
‘serif' | ‘font.serif' |
‘monospace' | ‘font.monospace' |
‘fantasy' | ‘font.fantasy' |
‘cursive' | ‘font.cursive' |
{‘sans', ‘sans serif', ‘sans-serif'} | ‘font.sans-serif' |
'font.sans-serif'等取值其實(shí)都代表一個(gè)字體列表。
如何設(shè)置默認(rèn)字體
官方文檔給出了設(shè)置默認(rèn)字體的方法建議:
To set the default font to be one that supports the code points you need, prepend the font name to ‘font.family' or the desired alias lists
matplotlib.rcParams[‘font.sans-serif'] = [‘Source Han Sans TW', ‘sans-serif']
or set it in your .matplotlibrc file:
font.sans-serif: Source Han Sans TW, Arial, sans-serif
To control the font used on per-artist basis use the ‘name', ‘fontname' or ‘fontproperties' kwargs documented above.
- 通過(guò)常見(jiàn)的方法設(shè)置: matplotlib.rcParams['font.sans-serif'] = ['Source Han Sans TW', 'sans-serif']
- 設(shè)置.matplotlibrc文件
.matplotlibrc文件中的字體設(shè)置
配置文件中重要的就是'font.sans-serif'等字體家族列表,列表是有優(yōu)先級(jí)的,越靠前字體的優(yōu)先級(jí)越高,所有很多教程中都要求把需要設(shè)置的字體設(shè)置為列表的第一個(gè)元素。
## *************************************************************************** ## * FONT * ## *************************************************************************** ## The font properties used by `text.Text`. ## See https://matplotlib.org/api/font_manager_api.html for more information ## on font properties. The 6 font properties used for font matching are ## given below with their default values. ## ## The font.family property has five values: ## - 'serif' (e.g., Times), ## - 'sans-serif' (e.g., Helvetica), ## - 'cursive' (e.g., Zapf-Chancery), ## - 'fantasy' (e.g., Western), and ## - 'monospace' (e.g., Courier). ## Each of these font families has a default list of font names in decreasing ## order of priority associated with them. When text.usetex is False, ## font.family may also be one or more concrete font names. ## ## The font.style property has three values: normal (or roman), italic ## or oblique. The oblique style will be used for italic, if it is not ## present. ## ## The font.variant property has two values: normal or small-caps. For ## TrueType fonts, which are scalable fonts, small-caps is equivalent ## to using a font size of 'smaller', or about 83%% of the current font ## size. ## ## The font.weight property has effectively 13 values: normal, bold, ## bolder, lighter, 100, 200, 300, ..., 900. Normal is the same as ## 400, and bold is 700. bolder and lighter are relative values with ## respect to the current weight. ## ## The font.stretch property has 11 values: ultra-condensed, ## extra-condensed, condensed, semi-condensed, normal, semi-expanded, ## expanded, extra-expanded, ultra-expanded, wider, and narrower. This ## property is not currently implemented. ## ## The font.size property is the default font size for text, given in pts. ## 10 pt is the standard value. ## ## Note that font.size controls default text sizes. To configure ## special text sizes tick labels, axes, labels, title, etc, see the rc ## settings for axes and ticks. Special text sizes can be defined ## relative to font.size, using the following values: xx-small, x-small, ## small, medium, large, x-large, xx-large, larger, or smaller #font.family: sans-serif #font.style: normal #font.variant: normal #font.weight: normal #font.stretch: normal #font.size: 10.0 #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
通過(guò)rc函數(shù)設(shè)置默認(rèn)字體屬性的方法
根據(jù)文檔可知
傳統(tǒng)的字體設(shè)置方法plt.rcParams['font.sans-serif'] = ['simhei']等價(jià)于
font = {'sans-serif' : ['simhei']} plt.rc('font', **font)
matplotlib.pyplot.rc(group, **kwargs) Set the current rcParams. group is the grouping for the rc, e.g., for lines.linewidth the group is lines, for axes.facecolor, the group is axes, and so on. Group may also be a list or tuple of group names, e.g., (xtick, ytick). kwargs is a dictionary attribute name/value pairs, e.g.,: rc('lines', linewidth=2, color='r') sets the current rcParams and is equivalent to: rcParams['lines.linewidth'] = 2 rcParams['lines.color'] = 'r'
到此這篇關(guān)于淺談matplotlib默認(rèn)字體設(shè)置探索的文章就介紹到這了,更多相關(guān)matplotlib默認(rèn)字體 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python實(shí)現(xiàn)系統(tǒng)狀態(tài)監(jiān)測(cè)和故障轉(zhuǎn)移實(shí)例方法
這篇文章主要介紹了用python實(shí)現(xiàn)系統(tǒng)狀態(tài)監(jiān)測(cè)和故障轉(zhuǎn)移的代碼方法2013-11-11python opencv實(shí)現(xiàn)切變換 不裁減圖片
這篇文章主要為大家詳細(xì)介紹了python opencv實(shí)現(xiàn)切變換,不裁減圖片,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-07-07Django數(shù)據(jù)庫(kù)連接丟失問(wèn)題的解決方法
這篇文章主要介紹了Django數(shù)據(jù)庫(kù)連接丟失問(wèn)題的解決方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-12-12Python數(shù)據(jù)結(jié)構(gòu)與算法之鏈表定義與用法實(shí)例詳解【單鏈表、循環(huán)鏈表】
這篇文章主要介紹了Python數(shù)據(jù)結(jié)構(gòu)與算法之鏈表定義與用法,結(jié)合具體實(shí)例形式較為詳細(xì)的分析了單鏈表、循環(huán)鏈表等的定義、使用方法與相關(guān)注意事項(xiàng),需要的朋友可以參考下2017-09-09在pytorch中對(duì)非葉節(jié)點(diǎn)的變量計(jì)算梯度實(shí)例
今天小編就為大家分享一篇在pytorch中對(duì)非葉節(jié)點(diǎn)的變量計(jì)算梯度實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-01-01關(guān)于pygame自定義窗口創(chuàng)建及相關(guān)操作指南
對(duì)于開(kāi)發(fā)一個(gè)游戲來(lái)說(shuō),窗口的顯示肯定是前提中的前提,對(duì)于pygame來(lái)說(shuō),只需要一小段代碼就可以初始化窗口,下面這篇文章主要給大家介紹了關(guān)于pygame自定義窗口創(chuàng)建及相關(guān)操作的相關(guān)資料,需要的朋友可以參考下2022-07-07