python画图如何显示中文_Python实现matplotlib显示中文的方法详解

本文实例讲述了Python实现matplotlib显示中文的方法。分享给大家供大家参考,具体如下:

【注意】

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

import matplotlib.pyplot as plt

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

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

【总结】

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

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

【测试代码】

import numpy as np

import matplotlib.pyplot as plt

font = {'family' : 'DFKai-SB',**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()

运行结果:

【附录】

一些中文字体的英文名

宋体

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

希望本文所述对大家Python程序设计有所帮助。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值