在matplotlib使用中文坐标轴,设置坐标轴,标题字体及字体大小

本文详细介绍了如何在Matplotlib中使用中文字体,通过指定字体路径实现坐标轴、标题等元素的中文显示。并提供了两个实例,一是展示时间序列数据的折线图,二是比较两个数据集的折线图,均包含中文标注和图例。

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

1.matplotlib的坐标轴中一般是不支持中文,在windows中要使用中文坐标轴的话,需要调用电脑中的字体。 实现代码:

from matplotlib import font_manager#导入字体管理模块
my_font = font_manager.FontProperties(fname="C:/WINDOWS/Fonts/STSONG.TTF")
#定义中文字体属性,文字储存路径可以在C:/WINDOWS/Fonts/找到,这里我设置的宋体
plt.xlabel("时间",fontproperties = my_font,fontsize = 18)
#在设置x坐标中文标注,令fontproperties = my_font,fontsize令字体为18号
#plt.title,plt.ylabel,plt.xticks,plt.yticks设置中文标注类似

完整代码实例如下:

from matplotlib import pyplot as plt#导入matplotlib
from matplotlib import font_manager#导入字体管理模块
import random#导入随机生成模块
my_font = font_manager.FontProperties(fname="C:/WINDOWS/Fonts/STSONG.TTF")
#定义中文字体属性,文字储存路径可以在C:/WINDOWS/Fonts/找到,这里我设置的宋体
y = [random.randint(20,35) for i in range(120)]#y值为120个在20-35之间随机数
x = range(0,120)#x值为0-120
plt.figure(figsize=(15,10),dpi=90)#图片大小为15*10,每英寸90个像素点
_x_labels = ["10点{}分".format(i) for i in range(60)]
_x_labels += ["11点{}分".format(i) for i in range(60)]#设置x坐标轴中文刻度
plt.xticks(list(x[::3]),_x_labels[::3],rotation=45,fontproperties=my_font,fontsize = 12)#坐标轴刻度显示步长为3,为了避免坐标轴字体重叠,旋转45度,fontproperties设置字体
plt.plot(x,y)
plt.xlabel("时间",fontproperties = my_font,fontsize = 18)#设置x坐标标注,字体为18号
plt.ylabel("每分钟对应的温度",fontproperties = my_font,fontsize = 18)#设置y坐标标注
plt.title("10点到12点每分钟温度变化图",fontproperties = my_font,fontsize = 24)#设置标题
plt.plot(x,y)#绘图
plt.show()#显示

图片结果如图所示:

2.绘制两条折线及添加图例,添加网格

from matplotlib import pyplot as plt
from matplotlib import font_manager
import random
plt.figure(figsize=(10,8),dpi=80)
my_font = font_manager.FontProperties(fname="C:/WINDOWS/Fonts/STSONG.TTF")
x = range(11,31)
y_1 = [random.randint(0,5) for i in range(20)]
y_2 = [random.randint(0,5) for i in range(20)]
_x_label = ["{}岁".format(i) for i in range(11,31)]
plt.xticks(list(x[::2]),_x_label[::2],rotation = 45,fontproperties = my_font,fontsize = 12)
plt.plot(x,y_1,label = "自己",color="red")
plt.plot(x,y_2,label= "朋友",linestyle="--",linewidth=2,alpha = 0.4)
plt.xlabel("年龄",fontproperties = my_font,fontsize = 18)
plt.ylabel("每年交的朋友",fontproperties = my_font,fontsize = 18)
plt.title("11岁到30岁每年交的朋友变化图",fontproperties = my_font,fontsize = 24)
plt.grid(alpha = 0.4)#添加网格,alpha = 0.4透明度
plt.legend(prop=my_font,loc='best')#添加图例
plt.show()

图片结果如图所示:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值