matplotlib设置显示中文方法

matplotlib显示中文(惠存)

【注意】

可能与本文主题无关,不过我还是想指出来:使用matplotlib库时,下面两种导入方式是等价的(我指的是等效,当然这个说法可以商榷:)

importmatplotlib.pyplot as plt


importpylab as plt



【效果图】


【方式一】FontProperties

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

import matplotlib.pyplot as plt

plt.xlabel("x轴")

plt.ylabel("y轴", fontproperties="SimSun") # 步骤一    (宋体)

plt.title("标题", fontproperties="SimHei") #          (黑体)

plt.show()

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

【方式三】rcParams

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

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()

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

【总结】

方式二用时才设置,且不会污染全局字体设置,更灵活

方式三、方式四不需要对字体路径硬编码,而且一次设置,多次使用,更方便。

【附录】

一些中文字体的英文名

宋体     SimSun

黑体     SimHei

微软雅黑     Microsoft YaHei

微软正黑体     Microsoft JhengHei

新宋体     NSimSun

新细明体     PMingLiU

细明体     MingLiU

标楷体     DFKai-SB

仿宋     FangSong

楷体     KaiTi

隶书:LiSu

幼圆:YouYuan

华文细黑:STXihei

华文楷体:STKaiti

华文宋体:STSong

华文中宋:STZhongsong

华文仿宋:STFangsong

方正舒体:FZShuTi

方正姚体:FZYaoti

华文彩云:STCaiyun

华文琥珀:STHupo

华文隶书:STLiti

华文行楷:STXingkai

华文新魏:STXinwei

你可能感兴趣的:(matplotlib设置显示中文方法)