前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python实现matplotlib显示中文的方法详解

Python实现matplotlib显示中文的方法详解

原创
作者头像
用户7718188
修改2021-10-08 15:38:21
9320
修改2021-10-08 15:38:21
举报
文章被收录于专栏:高级工程司高级工程司

【方式一】FontProperties

1 2 3 4 5 6 7 8

import matplotlib.pyplot as plt from matplotlib.font_manager import FontProperties # 步骤一 # ... font = FontProperties(fname=r"c:\windows\fonts\simsun.ttc", size=14) # 步骤二 plt.xlabel("x轴", fontproperties=font) # 步骤三 plt.ylabel("y轴", fontproperties=font) plt.title("标题", fontproperties=font) plt.show()

总的来说,很丑陋。

【方式二】 fontproperties

1 2 3 4 5 6

import matplotlib.pyplot as plt # ... plt.xlabel("x轴") plt.ylabel("y轴", fontproperties="SimSun") # 步骤一  (宋体) plt.title("标题", fontproperties="SimHei") #     (黑体) plt.show()

灵活,另一个优点:不污染全局字体设置

【方式三】rcParams

1 2 3 4 5 6 7 8

import matplotlib.pyplot as plt plt.rcParams['font.sans-serif'] = ['SimHei'] # 步骤一(替换sans-serif字体) plt.rcParams['axes.unicode_minus'] = False  # 步骤二(解决坐标轴负数的负号显示问题) #... plt.xlabel("x轴") plt.ylabel("y轴") plt.title("标题") plt.show()

简洁的用法。缺点:污染全局字体设置。(所以需要第二步骤)

【方式四】rc

1 2 3 4 5 6 7 8 9 10 11

import matplotlib.pyplot as plt font = {'family' : 'SimHei',     'weight' : 'bold',     'size'  : '16'} plt.rc('font', **font)        # 步骤一(设置字体的更多属性) plt.rc('axes', unicode_minus=False) # 步骤二(解决坐标轴负数的负号显示问题) #... plt.xlabel("x轴") plt.ylabel("y轴") plt.title("标题") plt.show()

灵活的用法。缺点:影响全局字体(所以需要第二步骤)

【总结】

方式二用时才设置,且不会污染全局字体设置,更灵活 方式三、方式四不需要对字体路径硬编码,而且一次设置,多次使用,更方便。

【测试代码】

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

import numpy as np import matplotlib.pyplot as plt font = {'family' : 'DFKai-SB',     'weight' : 'bold',     'size'  : '16'} plt.rc('font', **font) # pass in the font dict as kwargs plt.rc('axes',unicode_minus=False) x = np.linspace(0, 10, 1000) y = np.sin(x) z = np.cos(x**2) plt.figure(figsize=(8,4)) plt.plot(x,y,label="$sin(x)$",color="red",linewidth=2) plt.plot(x,z,"b--",label="$cos(x^2)$") plt.xlabel("x轴") plt.ylabel("y轴") plt.title("标题") plt.ylim(-1.2,1.2) plt.legend() plt.show()

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档