朱琛的小屋

matplotlib更改字体以及支持中文问题

在使用matplotlib的时候,发现了matplotlib无法支持中文的一个问题。

1
2
3
4
5
6
7
8
9
import matplotlib.pyplot as plt
x = [1,2,3,4,5,6,7,8]
y = [1,2,3,4,5,6,7,8]
plt.plot(x, y)
plt.title(u'测试程序')
plt.xlabel(u'x轴')
plt.ylabel(u'y轴')
plt.grid(True)
plt.show()

结果图:

有两个方法解决他:

  1. 直接在开头时改变整个脚本的显示字体:matplotlib.rcParams['font.sans-serif'] = ['SimHei'] 当然这个SimHei是可以自己改的。
    例子:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    import matplotlib.pyplot as plt
    matplotlib.rcParams['font.sans-serif'] = ['SimHei']
    x = [1,2,3,4,5,6,7,8]
    y = [1,2,3,4,5,6,7,8]
    plt.plot(x, y)
    plt.title(u'测试程序')
    plt.xlabel(u'x轴')
    plt.ylabel(u'y轴')
    plt.grid(True)
    plt.show()

结果图:

  1. 也可以动态的决定每个显示时的字体:
    例子:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    import matplotlib.pyplot as plt
    font = matplotlib.font_manager.FontProperties(fname='C:\Windows\Fonts\simsun.ttc')
    font1 = matplotlib.font_manager.FontProperties(fname='C:\Windows\Fonts\mingliu.ttc')
    x = [1,2,3,4,5,6,7,8]
    y = [1,2,3,4,5,6,7,8]
    plt.plot(x, y)
    plt.title(u'测试程序',fontproperties=font1)
    plt.xlabel(u'x轴', fontproperties=font)
    plt.ylabel(u'y轴', fontproperties=font)
    plt.grid(True)
    plt.show()

结果图:

这个图里的’测试程序’和’x轴’是两种字体,也就是说我们可以任意改变每一个label的字体啦。

朱琛 wechat
扫一扫,用手机看更方便~
坚持原创技术分享,您的支持将鼓励我继续创作!