数据分析Python matplotlib 绘制折线图

229 阅读3分钟

一.数据分析概念:为什要进行数据分析呢?

1.数据分析是岗位需求的 2.数据分析是Python数据学科的基础 3.数据分析是机器语言学习的基础。什么是数据分析呢?数据分析就是用一种方法对收集来的大量数据进行分析,从而帮助我们对数据做出判断,以便采取适当行动。数据分析的流程:提出问题-准备数据-数据分析-获得结论-结果可视化。

二.matplotlib:1.为什么要学习matplotlib?matplotlib可以使数据可视化,更直观地呈现;使数据更加客观,更具说服力。 2.什么是matplotlib?matplotlib是最流行的Python底层的绘图库,主要做可视化数据图表,取材于MATPLAB,模仿MATPLAB构建。

三·matplotlib绘制折线图

1.基本要点:

Screenshot_20231202_111608_edit_141381316478733.jpg 每个红色的点是坐标,把5个点的坐标连起来,就组成了一个折线图。那么到底如何把她通过代码的形式画出来呢?通过下面的一个例子来演示一下:题目:假设一天中每隔2个小时(range(2,26,2))的气温分别是[15,13,14.5,17,20,25,26,26,27,22,18,15]

from matplotlib import pyplot as plt
x = range(2, 26, 2)
y = [15, 13, 14, 5, 17, 20, 25, 26, 26, 27, 22, 18, 15]
# 绘图
plt.plot(x, y)
# 展示图形
plt.show()

它的运行结果就是一副折线图了。

2.那么如何使图像变得更加清晰呢?可以使用如下代码实现:figure是图形的图标意思,在这里指的就是我们所画的图了,通过实例化一个figure并且传递参数,能够在后台自动使用该figure实例;在图像前期的时候可以传入dpi参数,让图片变得更加清晰。

# 设置图像
plt.figure(figsize=(20,8),dps=80)

3.保存图片:plt.savefig("./sig_size.png")可以保存为svg这种矢量图格式,放大不会有锯齿。 设置x轴的刻度:

_xtick_labels = ["10点{}分".format(i) for i in range(60)]
_xtick_labels += ["11点{}分".format(i) for i in range(60)]
# 取步长,数字和字符串一一对应,数据的长度一样
plt.xticks(range(list(x)[::3],_xtick_labels[::3],rotation=45,fontproperties=my_font)# rotaion旋转的度数

4.调整x或者y轴上的刻度:设置好x或者y轴上的刻度之后,如果刻度太密集或者太稀疏的话,可以使用列表的步长[间隔取值]来解决,matplotib会自动帮我们对应。(_x = list(x)[::10]) 设置显示中文:matplotlib默认不支持中文字符,因为默认的英文字体无法显示汉字,查看linux/mac下面支持的字体:fc-list-查看支持的字体,fc-list :lang=zh-查看支持的中文(冒号前面有空格),那么如何修改matplotlib的默认字体呢?通过matplotlib.rc可以修改。

# windows和linux设置字体的方式
font = {'family': 'MicroSoft YaHei',
        'weight':'blod',
        'size':'larger'}
matplotlib.rc("font",**font)
matplotlib.rc("font",family*"MicroSoft YaHei',weight="bold"
# 设置另外一种字体的方式
my_font = font_manager.FontProperties(fname*"/System/Library/Fonts/PingFang.ttc")

5.设置图形信息:

# 添加描述信息:
plt.xlabel("时间",fontproperties=my_font)
plt.ylabel("温度 单位(s)"fontproperties=my_font)
plt.title("10点到12点每分钟的气温变化情况",fontproperties=my_font)

6.例题:绘制出一个折线图:

from matplotlib import pyplot as plt
from matplotlib import font_manager
# 设置字体
my_font = font_manager.FontProperties(fname="/System/Library/Fonts/PingFang.ttc")
y = [1, 0, 1, 1, 2, 4, 3, 2, 3, 4, 4, 5, 6, 5, 4, 3, 3, 1, 1, 1]
x = range(11, 31)
# 设置图形大小
plt.figure(figsize=(20,8),dpi=80)
plt.plot(x,y)
# 设置x轴刻度
_xtick_labels = ["{}岁".format(i) for i in x]
plt.xticks(x,_xtick_labels,fontproperties=my_font)
plt.yticks(range(0,0)
# 控制网格
plt.grid(alpha=0.4)
  1. 画出多个折线图:

plt.plot(x,y_1,label="myself",color="orange",linestyle=":") plt.plot(x,y_2,label="others",color="cyan",linestyle="--")

8.自定义图形的风格:

plt.plot(
        x, # x
        y, # y
        color='r' # 线条颜色
        linestyle='--',   # 线条相
        alpha=0.5,  # 线条透明度
        )