matplotlib折线图绘制

2 篇文章 0 订阅
1 篇文章 0 订阅
本文介绍了如何使用matplotlib库在Python中绘制折线图,包括张三随着年龄增长朋友数量的变化趋势,以及10点到12点每分钟温度变化的图形展示。
摘要由CSDN通过智能技术生成

matplotlib 折线图的绘制

张三随着年龄的增加,朋友数量的变化

x年纪=(11,31)

y个数=[1, 0, 1, 1, 2, 4, 3, 2, 3, 4, 4, 5, 6, 5, 4, 3, 3, 1, 1, 1]

from matplotlib import pyplot as plt


from matplotlib import font_manager

#如果不设置中文的话,其他代码运行正常;但如果增加中文设置,则报错RuntimeWarning: Glyph 21451 missing from current font.   font.set_text(s, 0, flags=flags),于是需要添加下两行代码(我也不知道是什么意思)
plt.rcParams['font.sans-serif'] = ['SimHei'] #显示中文标签
plt.rcParams['axes.unicode_minus'] = False   #运行配置参数总的轴(axes)正常显示正负号(minus)#这两行需要手动设置

my_font = font_manager.FontProperties(fname="C:/Windows/Fonts/STXIHEI.TTF")#本地font的地址

#设置图片大小
fig = plt.figure(figsize=(9, 9), dpi=80)#figure图形图标的意思,在这里指我们要画的图;dpi像素
x = (range(11, 31))
y = [1, 0, 1, 1, 2, 4, 3, 2, 3, 4, 4, 5, 6, 5, 4, 3, 3, 1, 1, 1]

#绘图
plt.plot(x, y) #传入x,y,通过折线图绘制图形

#绘制x轴的刻度
_xtick_labels = ["{}岁".format(i) for i in range(11, 31)]
#绘制x轴的刻度
plt.xticks(list(x)[::], _xtick_labels[::], rotation=270, fontproperties=my_font)
plt.xlabel("岁数")
plt.ylabel("个数")
plt.title("随着年纪的增加男/女朋友的个数")

#保存
plt.savefig("./sig_size.png")

plt.show()#展示图形

--------------------------------------------------------------

另一道题

10点到12点之间,每分钟的温度变化

a=[random.randint(20,35) for i in range(120)]

from matplotlib import pyplot as plt

from matplotlib import font_manager
import numpy as np #可以直接import random

plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False

my_font=font_manager.FontProperties(fname="C:/Windows/Fonts/STXIHEI.TTF")

fig=plt.figure(figsize=(15,10),dpi=80)
x=(range(120))
y=[np.random.randint(20,35)for i in range(120)]

plt.plot(x,y)

#以下是重点!!!!!
#为了能够显示时间字符串,设置一下x轴
_x=list(x)[::5]
_xtick_label = ["10点{}分".format(i) for i in range(60)]
_xtick_label += ["11点{}分".format(i-60) for i in range(60,120)]
#使得_x和_xtick_label一一对应
plt.xticks(_x,_xtick_label[::5],rotation=90)#ratation旋转
#_x和_xtick_label要一一对应,检查步长是否一致。


plt.yticks(y)
plt.xlabel("时间")
plt.ylabel("温度")
plt.title("10点到12点每一分钟的气温")

plt.show()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值