热线电话:13121318867

登录
2020-08-18 阅读量: 19795
用python matplotlib进行画图的时候如何将中文字体设定成电脑上的指定字体和指定字号大小?
import matplotlib as mpl
import matplotlib.pyplot as plt
zhfont1 = mpl.font_manager.FontProperties(fname=r'C:\Windows\Fonts\STKAITI.TTF',size=50)
zhfont2 = mpl.font_manager.FontProperties(fname=r'C:\Windows\Fonts\STCAIYUN.TTF',size=100)
fig,ax1=plt.subplots()
ax1.bar(["a","b","c"],[1,2,3])
ax1.set_ylabel(u'演示中文字体1',fontproperties=zhfont1)
ax1.set_xlabel(u"演示华文彩云",fontproperties=zhfont2)

image.png

想学习更多可以自己查阅python帮助文件

help(mpl.font_manager.FontProperties)

Help on class FontProperties in module matplotlib.font_manager:


class FontProperties(builtins.object)

| FontProperties(family=None, style=None, variant=None, weight=None, stretch=None, size=None, fname=None)


相关链接:

https://www.pinggu.com/post/details/5f3ca5fa49796226c2293a80

21.1844
31
关注作者
收藏
评论(8)

发表评论
ermutuxia
2020-08-18

## font props

'font.family': [['sans-serif'], validate_stringlist], # used by text object

'font.style': ['normal', validate_string],

'font.variant': ['normal', validate_string],

'font.stretch': ['normal', validate_string],

'font.weight': ['normal', validate_fontweight],

'font.size': [10, validate_float], # Base font size in points

'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'],

validate_stringlist],

'font.sans-serif': [['DejaVu Sans', 'Bitstream Vera Sans',

'Computer Modern Sans Serif',

'Lucida Grande', 'Verdana', 'Geneva', 'Lucid',

'Arial', 'Helvetica', 'Avant Garde', 'sans-serif'],

validate_stringlist],

'font.cursive': [['Apple Chancery', 'Textile', 'Zapf Chancery',

'Sand', 'Script MT', 'Felipa', 'cursive'],

validate_stringlist],

'font.fantasy': [['Comic Neue', 'Comic Sans MS', 'Chicago', 'Charcoal',

'Impact', 'Western', 'Humor Sans', 'xkcd', 'fantasy'],

validate_stringlist],

'font.monospace': [['DejaVu Sans Mono', 'Bitstream Vera Sans Mono',

'Computer Modern Typewriter',

'Andale Mono', 'Nimbus Mono L', 'Courier New',

'Courier', 'Fixed', 'Terminal', 'monospace'],

validate_stringlist],


0.0000 0 0 回复
ermutuxia
2020-08-18
    ## font props
    'font.family':     [['sans-serif'], validate_stringlist],  # used by text object
    'font.style':      ['normal', validate_string],
    'font.variant':    ['normal', validate_string],
    'font.stretch':    ['normal', validate_string],
    'font.weight':     ['normal', validate_fontweight],
    'font.size':       [10, validate_float],      # Base font size in points
    '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'],
                        validate_stringlist],
    'font.sans-serif': [['DejaVu Sans', 'Bitstream Vera Sans',
                         'Computer Modern Sans Serif',
                         'Lucida Grande', 'Verdana', 'Geneva', 'Lucid',
                         'Arial', 'Helvetica', 'Avant Garde', 'sans-serif'],
                        validate_stringlist],
    'font.cursive':    [['Apple Chancery', 'Textile', 'Zapf Chancery',
                         'Sand', 'Script MT', 'Felipa', 'cursive'],
                        validate_stringlist],
    'font.fantasy':    [['Comic Neue', 'Comic Sans MS', 'Chicago', 'Charcoal',
                         'Impact', 'Western', 'Humor Sans', 'xkcd', 'fantasy'],
                        validate_stringlist],
    'font.monospace':  [['DejaVu Sans Mono', 'Bitstream Vera Sans Mono',
                         'Computer Modern Typewriter',
                         'Andale Mono', 'Nimbus Mono L', 'Courier New',
                         'Courier', 'Fixed', 'Terminal', 'monospace'],
                        validate_stringlist],


0.0000 0 0 回复
ermutuxia
2020-08-18

image.png

help(plt.rcParams)是命令其他是输出结果,这是教给你如何看帮助文件。根据帮助文件提示找到下一个帮助文件位置。

0.0000 0 0 回复
wangxishi
2020-08-18

这几行标蓝色的是代码吗?

1.png

0.0000 0 0 回复
ermutuxia
2020-08-18

命令:help(plt.rcParams)

Help on RcParams in module matplotlib object:


class RcParams(collections.abc.MutableMapping, builtins.dict)

| RcParams(*args, **kwargs)

|

| A dictionary object including validation.

|

| Validating functions are defined and associated with rc parameters in

| :mod:`matplotlib.rcsetup`.

然后打开下面的文件。

"C:\ProgramData\Anaconda3\Lib\site-packages\matplotlib\rcsetup.py"

image.png

0.0000 0 0 回复
wangxishi
2020-08-18

还有个问题,我用这个代码

plt.rcParams['font.family'] = 'YaHei Consolas Hybrid'

出现下图的问题之后

1597736475(1).jpg再改回原来的代码运行,plt.rcParams['font.sans-serif'] = ['Simhei']

还是这个报错图片,字体也没出来,这是什么原因呢

0.0000 0 0 回复
wangxishi
2020-08-18

我更改字体后,总是报错并且字体出不来,报错如下:

1597736475(1).jpg

0.0000 0 0 回复
wangxishi
2020-08-18
plt.rcParams['font.family'] = 'YaHei Consolas Hybrid'

请问我这么写是哪里有问题吗,这么写出不来想要的字体,plt.rcParams函数应该怎么用呢





0.0000 0 0 回复
wangxishi
2020-08-18

是不是这么理解,修改字体要先导入一种字体,然后在用

fontproperties=zhfont1

定义使用导入的字体,不能直接在plt.rcParams['font.sans-serif'] = ['Simhei'] 这个代码上直接修改字体?

0.0000 0 0 回复
推荐帖子
条评论