Python3——matplotlib画图显示中文

matplotlib画图简直强大的不要不要的,但在默认情况下不支持中文字符,所以要通过以下设置字体来实现中文显示。

方法一:使用matplotlib.rc设置字体

font = {'family': 'FangSong',
        'weight': 'bold',
        'size': '14'}
matplotlib.rc('font', **font)

也可以写成一行:

matplotlib.rc('font', family='FangSong', weight='bold')

方法二:使用pylab包里的mpl动态设置参数

from pylab import mpl

mpl.rcParams['font.sans-serif'] = ['FangSong'] # 指定默认字体

方法三:使用matplotlib包里的font_manager字体管理器(字体路径直接在开始搜索框搜"字体"就可以啦)

from matplotlib import font_manager
my_font = font_manager.FontProperties(fname=r'C:\WINDOWS\FONTS\SIMSUN.TTC')

# 调用的时候设置fontproperties参数
# plt.xticks(_x[::5], _xtick_labels[::5], rotation=45, fontproperties=my_font)

举个例子:

from matplotlib import pyplot as plt
import numpy as np
import matplotlib
# 设置字体
# font = {'family': 'FangSong',
#         'weight': 'bold',
#         'size': '14'}
# matplotlib.rc('font', **font)
matplotlib.rc('font', family='FangSong', weight='bold')

x1 = range(0, 120)
y1 = [np.random.randint(20, 35) for i in range(120)]
plt.figure(figsize=(20, 8), dpi=80)
plt.plot(x1, y1)

# 调整X轴的刻度
_x = list(x1)
# 设置x轴刻度的字符串
_xtick_labels = ["6点%s分" % i for i in range(60)]
_xtick_labels += ["7点%s分" % i for i in range(60)]
# 取步长,数字和字符串一一对应,数据的长度一样,rotation旋转刻度字符
plt.xticks(_x[::5], _xtick_labels[::5], rotation=45)
plt.show()

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值