python学习之图表坐标系中文显示

pythonMatplotlib 2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形。

在程序开始的地方导入库

一、基础绘图

from matplotlib import pyplot as plt

利用plt.plot(x,y)即可绘图,

plt.savefig("存储位置\fig.png")  #将图保存到目录中

plt.show()   #在plot窗口中显示图表

但是,我们不满足于简单的表格,希望可以定义表格横纵坐标轴刻度,图表题目等,在编辑过程中,我们发现不能正常生成中文刻度,显示为一个小方块,那么应该如何解决呢?

1、首先导入matplotlib中的字体的库

from matplotlib import font_manager

2、定义一个my_font

my_font = font_manager.FontProperties(fname=(r'C:\Windows\Fonts\simhei.ttf'))

注意此处的路径是你电脑中的字体位置,可能与我这个路径相同,大差不差就是这个位置

3、在设置x轴刻度的函数中加上该参数,黄色部分

plt.xticks(_x[::20],_x_label[::20],rotation=45,FontProperties=my_font)

就成功了

下一个问题,添加横纵坐标轴描述信息

plt.xlabel("时间")   #横坐标描述信息
plt.ylabel("温度 单位(摄氏度)")  #纵坐标描述信息
plt.title("10点到12点每分钟气温变化情况")    #图表题目

 二、应用实例

# -*- coding: utf-8 -*-
"""
Created on Wed Nov  2 19:13:46 2022

@author: 82089
"""
"""
一个小练习
假设在30岁统计11岁-30岁谈的女朋友数量 
如列表a,绘制折线图,分析走势
a = [1,0,1,1,2,4,3,2,3,4,4,5,6,5,4,3,3,1,1,1]
要求:y轴表示个数,x轴表示岁数
"""

#导入绘图库
from matplotlib import pyplot as plt
from matplotlib import font_manager

#定义x,y的数值,这里注意x与y的数量必须一致
x = list(range(11,31)) 
y = [1,0,1,1,2,4,3,2,3,4,4,5,6,5,4,3,3,1,1,1]

#设置中文字体
my_font = font_manager.FontProperties(fname=(r'C:\Windows\Fonts\simhei.ttf'))

#添加x,y轴,标题等信息
x_label = ["{}岁".format(i) for i in x]
plt.xticks(x[::2],x_label[::2],FontProperties=my_font) 
plt.xlabel("年龄")
plt.ylabel("个数")
plt.title("11岁到30岁女朋友数量变化图")

#绘图
plt.plot(x, y)
#保存至当前目录
plt.savefig("./ti1.png")

#添加网格
plt.grid()
#显示
plt.show() 

运行结果

​​​​​​​

 三、升级版应用实例

# -*- coding: utf-8 -*-
"""
Created on Wed Nov  2 19:45:31 2022

@author: 82089
"""
"""
增强小练习
假设在30岁统计11岁-30岁你和你同桌两个人谈的女朋友数量 
如列表a,绘制折线图,分析走势
a = [1,0,1,1,2,4,3,2,3,4,4,5,6,5,4,3,3,1,1,1]
b = [1,0,3,1,2,2,3,3,2,1,2,1,1,1,1,1,1,1,1,1]
要求:y1轴表示你的数据,y2表示你同桌的数据,x轴表示岁数
"""

#导入绘图库
from matplotlib import pyplot as plt
from matplotlib import font_manager

#定义x,y1,y2的数值,这里注意x与y的数量必须一致
x = list(range(11,31)) 
y1 = [1,0,1,1,2,4,3,2,3,4,4,5,6,5,4,3,3,1,1,1]
y2 = [1,0,3,1,2,2,3,3,2,1,2,1,1,1,1,1,1,1,1,1]
#设置中文字体
my_font = font_manager.FontProperties(fname=(r'C:\Windows\Fonts\simhei.ttf'))

#添加x,y1轴,标题等信息
x_label = ["{}岁".format(i) for i in x]
plt.xticks(x[::2],x_label[::2],FontProperties=my_font) 
plt.xlabel("年龄")
plt.ylabel("个数")
plt.title("11岁到30岁女朋友数量变化图")

#绘图
plt.plot(x, y1, label='自己', color = 'pink', linestyle = '-.')
plt.plot(x, y2, label='同桌', color = 'cyan', linestyle = ':')

#保存至当前目录
#plt.savefig("./ti1.png")

#添加网格
plt.grid(alpha=0.4, linestyle=':')  #透明度 

#添加图例  loc位置
plt.legend()
#显示
plt.show() 

 

 OK

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值