matplotlib显示中文字体(mac os) matplotlib display Chinese in mac os

文章介绍了在Python的Matplotlib库中设置中文字体的四种方法,包括全局和局部设置,涉及字体类型、负号显示以及字体位置的处理。同时,提供了查看系统中文字体和matplotlib内置字体的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

 一、总结:四种方法如下

        method 1(全局设置)

        method 2(全局设置)

        method 3(局部设置)

        method 4(局部设置)

二、查看matplotlib中的字体

三、 查看电脑的中文字体及导入到matplotlib

1. 打开应用 字体册

2. 点击左侧的中文字体

3. 右边显示了很多中文字体,右击字体,选择在访达中访问,就可以查看字体的位置及其名称

4. 使用字体

三、4种方法具体代码示例

方法一

方法二

方法三

方法四


 一、总结:四种方法如下

        method 1(全局设置)

import matplotlib.pyplot as plt  # 后面的方法省略了import
plt.rcParams['font.sans-serif']=['Hiragino Sans GB'] # 修改字体
plt.rcParams['axes.unicode_minus'] = False # 正常显示负号

        method 2(全局设置)

font = {'family' : 'Hiragino Sans GB', 'weight' : 'bold', 'size' : '16'} 
plt.rc('font', **font) # 步骤一(设置字体的更多属性) 
plt.rc('axes', unicode_minus=False) # 步骤二(解决坐标轴负数的负号显示问题)

        method 3(局部设置)

可以直接指定字体的位置,可以使用ttc格式的字体

from matplotlib.font_manager import FontProperties # 步骤一 
font = FontProperties(fname="/System/Library/Fonts/Hiragino Sans GB.ttc", size=14) 
plt.xlabel("时间周期/min", fontsize=13, fontproperties=font)

        method 4(局部设置)

plt.ylabel("直接信任度值", fontsize=13, fontdict={"family": "Hiragino Sans GB", "size": 15, "color": "k"})
plt.legend(prop={'family': 'STHeiti Light', 'size': 16})

二、查看matplotlib中的字体

        1. 方法一:matplotlib的字体库位置,可以根据报错的位置查看matplotlib的位置。

/Users/lcz/anaconda3/lib/python3.8/site-packages/matplotlib/mpl-data/fonts

        进入目录就可以看到字体了。

        2. 方法二:通过以下代码获取字体

from matplotlib import font_manager
mt_font = sorted([f.name for f in font_manager.fontManager.ttflist])
print(mt_font)

        然后里面的中文字体就可以直接使用,不过要判别哪些是中文字体。

三、 查看Mac里的中文字体及导入到matplotlib

1. 打开应用 字体册
2. 点击左侧的中文字体
3. 右边显示了很多中文字体,右击字体,选择在访达中访问,就可以查看字体的位置及其名称
# 我的 macbook 字体存放的位置: 
/System/Library/Fonts
4. 使用字体
        a. 方式一:可以直接用方法3指定字体的位置
        b. 方式二:将字体复制到matplotlib的字体库里面。(注意是.ttf的字体才可以,否则就去网上下载)
        matplotlib的字体库位置,可以根据报错的位置查看matplotlib的位置。

        我的位置:

/Users/lcz/anaconda3/lib/python3.8/site-packages/matplotlib/mpl-data/fonts

        将字体复制到ttf文件夹下:

cd /Users/lcz/anaconda3/lib/python3.8/site-packages/matplotlib/mpl-data/fonts/ttf
cp /System/Library/Fonts/Supplemental/Arial/ Unicode.ttf .

三、4种方法具体代码示例

方法一

import matplotlib.pyplot as plt
import numpy as np

plt.rcParams['font.sans-serif']=['Hiragino Sans GB']  # 修改字体
plt.rcParams['axes.unicode_minus'] = False   # 正常显示负号

plt.figure(figsize=(3,2))
x = np.arange(5)
plt.plot(x)
plt.axis([-2,5,0,4])
plt.xlabel('你好')

plt.show()

方法二

import matplotlib.pyplot as plt
import numpy as np

font = {'family' : 'Hiragino Sans GB',
        'weight' : 'bold',
        'size'   : '16'}
plt.rc('font', **font)               # 步骤一(设置字体的更多属性)
plt.rc('axes', unicode_minus=False)  # 步骤二(解决坐标轴负数的负号显示问题)

plt.figure(figsize=(3,2))
x = np.arange(5)
plt.axis([-5,5,-5,5])
plt.plot(x)
plt.xlabel('你好')

plt.show()

方法三

import matplotlib.pyplot as plt
import numpy as np
from matplotlib.font_manager import FontProperties  # 步骤一

font = FontProperties(fname="/System/Library/Fonts/Hiragino Sans GB.ttc", size=14)  # 步骤二

x = np.arange(5)
y1,y2,y3 = x, x**2, x*2
plt.plot(x, y1, marker='^', color="k", label="折线图一")
plt.plot(x, y2, marker="o", color="k", label="折线图二")

plt.xlabel("时间", fontsize=13, fontproperties=font)
plt.ylabel("树脂", fontsize=13, fontproperties=font)
# 显示图例
plt.legend(prop=font)
 
plt.show()

方法四

import matplotlib.pyplot as plt
import numpy as np

fontdict={"family": "Hiragino Sans GB", "size": 15, "color": "r"}
x = np.arange(0, 10, 2)
 
# 设置figure大小  像素
plt.figure(figsize=(5, 3))


# 绘制三条折线  点的形状 颜色  标签:用于图例显示
plt.plot(x, x, marker='^', color="k", label="折线一")
plt.plot(x, x**2, marker="o", color="k", label="折线二")
 
# x y 轴标签   字体大小
plt.xlabel('时间', fontsize=13, fontdict=fontdict)
plt.ylabel('树脂', fontsize=13, fontdict={"family": "Hiragino Sans GB", "size": 15, "color": "k"})
 
# 显示图例
plt.legend(prop={'family': 'Hiragino Sans GB', 'size': 16})
plt.show()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值