目录
3. 右边显示了很多中文字体,右击字体,选择在访达中访问,就可以查看字体的位置及其名称
一、总结:四种方法如下
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()