欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-04-03 21:15:47
...

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

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

绘制了折线图(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();

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

案例二:统计某天上午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();

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

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

#!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()

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