(数据分析)Python-matpoltlib库-绘制折线图

本文介绍了如何利用Python的matplotlib库绘制气温变化折线图,展示了从10点到12点每分钟的气温数据,并详细解释了代码中的关键参数设置,如设置中文字体、调整坐标轴刻度和添加图例等。同时,提供了绘制两条曲线(小明和小华的数据)在同一图表上的实例,展示了如何通过颜色和标签区分不同数据系列,并添加网格和图例增强可视化效果。
摘要由CSDN通过智能技术生成

写在该专题之前:

(该专题参考bi站黑马程序员【python教程】数据分析——numpy、pandas、matplotlib)

https://www.bilibili.com/medialist/play/ml1115867835/BV1hx411d7jb

问题引入

如果列表a表示10点到12点的每一分钟的气温,如何绘制折线图观察每分钟气温的变化情况?

需要用到的库

from matplotlib import pyplot as plt
import random
from matplotlib import font_manager

源码

my_font = font_manager.FontProperties(fname="C:\\Windows\\Fonts\\simfang.ttf")
x = range(0, 120)
random.seed(10)
y = [random.randint(20, 35) for i in range(120)]
# figsize=(width,high)  dpi 每英寸上点的个数 (清晰程度)
fig = plt.figure(figsize=(20, 8), dpi=80)
plt.plot(x, y)
# 指定x的刻度
_xtick_lables = ["10:{}".format(i) for i in range(60)]
_xtick_lables += ["11:{}".format(i) for i in range(60)]
plt.xticks(list(x)[::3], _xtick_lables[::3], rotation=45, fontproperties=my_font)
# rotation=45让字符串旋转45度
# 添加描述信息
plt.xlabel("时间", fontproperties=my_font)
plt.ylabel("温度 单位(℃)", fontproperties=my_font)
plt.title("10:00到12:00的气温变化", fontproperties=my_font)
# plt.savefig("./t.png")
plt.show()

程序运行结果

在这里插入图片描述

注意事项

1、figsize = (width,high)
dpi每英寸上点的个数 (清晰程度)

# figsize = (width,high)  dpi 每英寸上点的个数 (清晰程度)
fig = plt.figure(figsize=(20, 8), dpi=80)

2、matplotlib默认不支持中文字符,因为默认的英文字体无法显示汉字,解决方法如下:给fontproperties属性赋一个值来显示中文字体
font_manager.FontProperties(fname=“字体文件路径”)

my_font = font_manager.FontProperties(fname="C:\\Windows\\Fonts\\simfang.ttf")
plt.xlabel("时间", fontproperties=my_font)
plt.ylabel("温度 单位(℃)", fontproperties=my_font)
plt.title("10:00到12:00的气温变化", fontproperties=my_font)

练习

x = range(11, 31)
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]
将a,b绘制在同一个图上

my_font = font_manager.FontProperties(fname="C:\\Windows\\Fonts\\simfang.ttf")
x = range(11, 31)
y_1 = [1, 0, 1, 1, 2, 4, 3, 2, 3, 4, 4, 5, 6, 5, 4, 3, 3, 1, 1, 1]
y_2 = [1, 0, 3, 1, 2, 2, 3, 3, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1]

# figure(width,high)  dpi 每英寸上点的个数 (清晰程度)
fig = plt.figure(figsize=(20, 8), dpi=80)
plt.plot(x, y_1, label="小明", color="orange")
plt.plot(x, y_2, label="小华", color="blue")
# 指定x的刻度
_xtick_lables = ["{}岁".format(i) for i in x]
plt.xticks(x, _xtick_lables, fontproperties=my_font)
plt.yticks(range(0, 9))

# 绘制网格
plt.grid(alpha=0.2)
# 添加图例
plt.legend(prop=my_font, loc="upper right")
plt.show()

运行结果

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值