zl程序教程

您现在的位置是:首页 >  后端

当前栏目

数据分析-day01-matplotlib-折线图

matplotlib数据分析 折线图 day01
2023-09-27 14:22:12 时间

一.数据分析:把大量的数据进行统计和整理,得出结论,为后续的决策提供支持。

二.折线图,要掌握的知识点

绘制了折线图(plt.plot)

设置了图片的大小和分辨率(plt.figure)

实现了图片的保存(plt.savefig)

设置了xy轴上的刻度和字符串(xticks)

解决了刻度稀疏和密集的问题(xticks)

设置了标题,xy轴的lable(title,xlable,ylable)

设置了字体(font_manager. fontProperties,matplotlib.rc)

在一个图上绘制多个图形(plt多次plot即可)

为不同的图形添加图例

三.详情案例一:

from matplotlib import pyplot as plt
x=range(2,26,2);
y=[15,13,14,5,17,20,25,26,27,22,18,15];
print([x for x in y])
#设置图片的大小,dpi为分辨率
plt.figure(figsize=(20,8),dpi=50);
#设置x,y轴的刻度,让其变稀疏或者稠密
x_label=[i/2 for i in range(4,49)]
plt.xticks(x_label[::2])  #[]
plt.yticks(range(min(y),max(y)+1))


#绘图
plt.plot(x,y)

#保存
plt.savefig("./t1.png");
#显示
plt.show();

案例二:统计某天上午10-12点,气温的变化

from matplotlib.font_manager import FontManager, FontProperties
from matplotlib import pyplot as plt, font_manager
from numpy import random
'''
背景:统计上午10-12点,气温的变化情况
'''
x=range(0,120);
y=[random.randint(20,35) for i in range(120)]
#设置字体的方式
#my_font=font_manager.FontProperties(fname="/System/Library/Fonts/PingFang.ttc");
#windows中的解决办法
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
plt.figure(figsize=(20,8),dpi=60)
#调增x轴的稀疏

plt.plot(x,y)
x_labels=["10点{}分".format(i) for i in range(60)];
x_labels=x_labels+["11点{}分".format(i) for i in range(60)];
#取步长,数字和字符串一一对应,数据的长度一样 list(x),转成list,才能用切片,rotation 旋转的度数
plt.xticks(list(x)[::3],x_labels[::3],rotation=90)#
#添加描述信息
plt.xlabel("时间")
plt.ylabel("温度 单位(℃)")
plt.title("北京市10点到12点的温度化")

plt.show();

案例三:统计不同年龄阶段,结识的男女朋友

#!usr/bin/env python
#-*- coding:utf-8 _*-
# @author:Administrator
# @file: matplot-zhexian-demo3.py
# @time: 2019-12-29 下午 1:35
# coding=utf-8
from matplotlib import pyplot as plt
from matplotlib import font_manager
'''
统计不同年龄阶段,结识的男女朋友

'''
#my_font = font_manager.FontProperties(fname="/System/Library/Fonts/PingFang.ttc")
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
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]

x = range(11,31)

#设置图形大小
plt.figure(figsize=(20,8),dpi=80)

plt.plot(x,y_1,label="自己",color="green")
plt.plot(x,y_2,label="同桌",color="orange",linestyle="--")

#设置x轴刻度
_xtick_labels = ["{}岁".format(i) for i in x]
#plt.xticks(x,_xtick_labels,fontproperties=my_font)
plt.xticks(x,_xtick_labels)
# plt.yticks(range(0,9))

#绘制网格
plt.grid(alpha=0.5,linestyle=':',c="r")

#添加图例
plt.legend(loc="upper left")

#展示
plt.show()