Python可视化Matplotlib折线图plot用法详解

目录
  • 1.完善原始折线图 — 给图形添加辅助功能
    • 1.1 准备数据并画出初始折线图
    • 1.2 添加自定义x,y刻度
    • 1.3 中文显示问题解决
    • 1.4 添加网格显示
    • 1.5 添加描述信息
    • 1.6 图像保存
  • 2. 在一个坐标系中绘制多个图像
    • 2.1 多次plot
    • 2.2 显示图例
    • 2.3 折线图的应用场景

折线图是数据分析中非常常用的图形。其中,折线图主要是以折线的上升或下降来表示统计数量的增减变化的统计图。用于分析自变量和因变量之间的趋势关系,最适合用于显示随着时间而变化的连续数据,同时还可以看出数量的差异,增长情况。

特点:能够显示数据的变化趋势,反映事物的变化情况。

Matplotlib 中绘制折线图的函数为 plot() ,使用语法如下:

matplotlib.pyplot.plot(*args, scalex=True, scaley=True, data=None, **kwargs)

常用参数及说明:

参数 接收值 说明 默认值
x,y array 表示 x 轴与 y 轴对应的数据
color string 表示折线的颜色 None
marker string 表示折线上数据点处的类型 None
linestyle string 表示折线的类型 -
linewidth 数值 线条粗细:linewidth=1.=5.=0.3 1
alpha 0~1之间的小数 表示点的透明度 None
label string 数据图例内容:label=‘实际数据' 1None

1.完善原始折线图 — 给图形添加辅助功能

需求:画出某城市11点到12点1小时内每分钟的温度变化折线图,温度范围在15度~25度

1.1 准备数据并画出初始折线图

import matplotlib.pyplot as plt
import random
# 画出温度变化图
# 0.准备x, y坐标的数据
x = range(60)
y_jiangsu = [random.uniform(15, 25) for i in x]
# 1.创建画布
plt.figure(figsize=(20, 8), dpi=80)
# 2.绘制折线图
plt.plot(x, y_jiangsu)
# 3.显示图像
plt.show()

1.2 添加自定义x,y刻度

plt.xticks(x, **kwargs)

x:要显示的刻度值

plt.yticks(y, **kwargs)

y:要显示的刻度值

# 构造x轴刻度标签
x_ticks_label = ["11点{}分".format(i) for i in x]
# 构造y轴刻度
y_ticks = range(40)
# 修改x,y轴坐标的刻度显示
plt.xticks(x[::5], x_ticks_label[::5])
plt.yticks(y_ticks[::5])

1.3 中文显示问题解决

如果没有解决过中文问题的话,绘制的图像会出现中文无法显示的问题。

解决方案:
在Python脚本中动态设置matplotlibrc,这样也可以避免由于更改配置文件而造成的麻烦,具体代码如下:

from pylab import mpl
# 设置显示中文字体
mpl.rcParams["font.sans-serif"] = ["SimHei"]

有时候,字体更改后,会导致坐标轴中的部分字符无法正常显示,例如无法显示负号问题,此时需要更改axes.unicode_minus参数:

# 设置正常显示符号
mpl.rcParams["axes.unicode_minus"] = False

1.4 添加网格显示

为了更加清楚地观察图形对应的值

plt.grid(True, linestyle='--', alpha=0.5)

1.5 添加描述信息

添加x轴、y轴描述信息及标题

通过fontsize参数可以修改图像中字体的大小

plt.xlabel("时间")
plt.ylabel("温度")
plt.title("江苏中午11点0分到12点之间的温度变化图示", fontsize=20)

1.6 图像保存

# 保存图片到指定路径
plt.savefig("test.png")

注意:plt.show()会释放figure资源,如果在显示图像之后保存图片将只能保存空图片。

2. 在一个坐标系中绘制多个图像

2.1 多次plot

需求:再添加一个城市的温度变化
收集到北京当天温度变化情况,温度在1度到3度。怎么去添加另一个在同一坐标系当中的不同图形,其实很简单只需要再次plot即可,但是需要区分线条。

# 增加北京的温度数据
y_beijing = [random.uniform(1, 3) for i in x]
# 绘制折线图
plt.plot(x, y_jiangsu)
# 使用多次plot可以画多个折线
plt.plot(x, y_beijing, color='r', linestyle='--')

2.2 显示图例

注意:如果只在plt.plot()中设置label还不能最终显示出图例,还需要通过plt.legend()将图例显示出来。

# 绘制折线图
plt.plot(x, y_jiangsu, label="江苏")
# 使用多次plot可以画多个折线
plt.plot(x, y_beijing, color='r', linestyle='--', label="北京")
# 显示图例
plt.legend(loc="best")

完整代码:

# 0.准备数据
x = range(60)
y_jiangsu = [random.uniform(15, 25) for i in x]
y_beijing = [random.uniform(1,3) for i in x]
# 1.创建画布
plt.figure(figsize=(20, 8), dpi=100)
# 2.绘制图像
plt.plot(x, y_jiangsu, label="江苏")
plt.plot(x, y_beijing, color="r", linestyle="--", label="北京")
# 2.1 添加x,y轴刻度
# 构造x,y轴刻度标签
x_ticks_label = ["11点{}分".format(i) for i in x]
y_ticks = range(35)
# 刻度显示
plt.xticks(x[::5], x_ticks_label[::5])
plt.yticks(y_ticks[::5])
# 2.2 添加网格显示
plt.grid(True, linestyle="--", alpha=0.5)
# 2.3 添加描述信息
plt.xlabel("时间")
plt.ylabel("温度")
plt.title("中午11点--12点某城市温度变化图", fontsize=20)
# 2.4 图像保存
plt.savefig("./test.png")
# 2.5 添加图例
plt.legend(loc="best")
# 3.图像显示
plt.show()

2.3 折线图的应用场景

  • 呈现公司产品(不同区域)每天活跃用户数
  • 呈现app每天下载数量
  • 呈现产品新功能上线后,用户点击次数随时间的变化

创作不易,白嫖不好,各位的支持和认可,就是我创作的最大动力,我们下篇文章见!

Dragon少年 | 文

如果本篇博客有任何错误,请批评指教,不胜感激 !

以上就是Python可视化Matplotlib折线图plot用法详解的详细内容,更多关于Python可视化Matplotlib的资料请关注我们其它相关文章!

(0)

相关推荐

  • Python数据分析JupyterNotebook3魔法命令详解及示例

    目录 1.魔法命令介绍 %lsmagic:列出所有magics命令 %quickref:输出所有魔法指令的简单版帮助文档 %Magics_Name?:输出某个魔法命令详细帮助文档 2.Line magics:Line魔法指令 3.Cell magics:Cell魔法指令 写bash程序 写perl程序 1.魔法命令介绍 %lsmagic:列出所有magics命令 Available line magics:[对当前行使用共计93个] %alias %alias_magic %autoawait

  • Python可视化Matplotlib介绍和简单图形的绘制

    目录 1. 什么是Matplotlib 2. 实现一个最简单的Matplotlib画图以折线图为例 2.1 matplotlib.pyplot模块 2.2 图形绘制流程 1.创建画布 – plt.figure() 2.绘制图像 – plt.plot(x, y) 3.显示图像 – plt.show() 2.3 折线图绘制与显示 1. 什么是Matplotlib matplotlib是专门用于开发2D图表(包括3D图表),以渐进.交互式方式实现数据可视化.使用python对matplotlib库操作

  • Python 使用 attrs 和 cattrs 实现面向对象编程的实践

    Python 是支持面向对象的,很多情况下使用面向对象编程会使得代码更加容易扩展,并且可维护性更高,但是如果你写的多了或者某一对象非常复杂了,其中的一些写法会相当相当繁琐,而且我们会经常碰到对象和 JSON 序列化及反序列化的问题,原生的 Python 转起来还是很费劲的. 可能这么说大家会觉得有点抽象,那么这里举几个例子来感受一下. 首先让我们定义一个对象吧,比如颜色.我们常用 RGB 三个原色来表示颜色,R.G.B 分别代表红.绿.蓝三个颜色的数值,范围是 0-255,也就是每个原色有 25

  • Python attrs提高面向对象编程效率详细

    目录 1.attrs的使用 2.验证器 3.转换器 前言: Python是面向对象的语言,一般情况下使用面向对象编程会使得开发效率更高,软件质量更好,并且代码更易于扩展,可读性和可维护性也更高.但是如果在一个较大的项目中,如果实体类非常多并且有非常复杂的属性,你就会逐渐觉得Python的类写起来是真·"累".为什么这样说,看下下面这个Box类,属性有长(length).宽(width).高(hight): class Box: def __init__(self, length, wi

  • Python之集合详解

    目录 集合的基本操作 1.添加元素 add() update() 2.移除元素 remove() clear() 3.集合的交集 什么是交集? intersection() 3.集合的并集 什么是并集? union() 总结 集合(set)是一个无序的不重复元素序列. 可以使用大括号 { } 或者 set() 函数创建集合. student = {'小明', 'xiaohong', 'adm'} print('student的数据类型', type(student)) # student的数据类

  • 用Python做个自动化弹钢琴脚本实现天空之城弹奏

    目录 一.核心功能设计 二.实现步骤 1. 演奏函数 2. 添加演奏旋律多线程 3. 手指演奏曲谱 4. 钢琴模拟演奏 前言 小时候一直有一个想成为钢琴家的梦想,最近在网上看到了一个开源的钢琴演奏网页autopiano,可以支持键盘按键弹奏.鼠标点击弹奏. 首先一起来看看最终实现的演奏效果: 下面,我们就开始介绍如何实现这个自动化弹钢琴脚本的. 一.核心功能设计 总体的实现相对是比较简单的,主要分为以下4步实现: 实现演奏函数,通过手指及时间间隔模拟弹钢琴 添加各个演奏旋律线程,通过多线程模拟双

  • Python中字典的基础介绍及常用操作总结

    目录 1.字典的介绍 2.访问字典的值 (一)根据键访问值 (二)通过get()方法访问值 3.修改字典的值 4.添加字典的元素(键值对) 5.删除字典的元素 6.字典常见操作 1.len 测量字典中键值对的个数 2. keys 返回一个包含字典所有KEY的列表 3. values 返回一个包含字典所有value的列表 4. items 返回一个包含所有(键,值)元祖的列表 5.遍历字典的key(键) 6.遍历字典的value(值) 7.遍历字典的items(元素) 8.遍历字典的items(键

  • Python pymysql操作MySQL详细

    目录 1.使用 1.1 简单使用 1.2 封装工具类 1.使用 1.1 简单使用 import pymysql # 创建连接 con = pymysql.connect( host='localhost', port=3306, user='root', password='123456', database='test', charset='utf8' ) # 创建游标 cursor = con.cursor() # 执行新增SQL,返回受影响行数 row1 = cursor.execute(

  • Python可视化Matplotlib折线图plot用法详解

    目录 1.完善原始折线图 - 给图形添加辅助功能 1.1 准备数据并画出初始折线图 1.2 添加自定义x,y刻度 1.3 中文显示问题解决 1.4 添加网格显示 1.5 添加描述信息 1.6 图像保存 2. 在一个坐标系中绘制多个图像 2.1 多次plot 2.2 显示图例 2.3 折线图的应用场景 折线图是数据分析中非常常用的图形.其中,折线图主要是以折线的上升或下降来表示统计数量的增减变化的统计图.用于分析自变量和因变量之间的趋势关系,最适合用于显示随着时间而变化的连续数据,同时还可以看出数

  • Matplotlib 折线图plot()所有用法详解

    散点图和折线图是数据分析中最常用的两种图形.其中,折线图用于分析自变量和因变量之间的趋势关系,最适合用于显示随着时间而变化的连续数据,同时还可以看出数量的差异,增长情况. Matplotlib 中绘制散点图的函数为 plot() ,使用语法如下:matplotlib.pyplot.plot(*args, scalex=True, scaley=True, data=None, **kwargs) 常用参数及说明: 参数 接收值 说明 默认值 x,y array 表示 x 轴与 y 轴对应的数据:

  • Python数据分析matplotlib折线图案例处理

    目录 前言 python之matplotlib使用系统字体 实例1:温度变化统计 实例2:交友数量折线图 前言 以下分享折线图小案例,matplotlib还可以进行多种图形的绘制,可以进入官网https://matplotlib.org/gallery/index.html,点击examples,如需学习,选择要学习的图进入,里面包含有代码 python之matplotlib使用系统字体 1.导包from matplotlib.font_manager import FontProperties

  • Python绘图库之pyqtgraph的用法详解

    plot 设置plot的pen属性的几种方法,通过画笔可以设置绘制图像的颜色.线宽等参数: pen=(255,0,0) pen=pg.mkPen(color=‘b’, width=5) pen=pg.mkPen({‘color’:‘FF0’, ‘width’: 2}) import sys import os from PyQt5.QtGui import * from PyQt5.QtCore import * from PyQt5.QtWidgets import * import pyqt

  • Python中index()和seek()的用法(详解)

    1.index() 一般用处是在序列中检索参数并返回第一次出现的索引,没找到就会报错,比如: >>> t=tuple('Allen') >>> t ('A', 'l', 'l', 'e', 'n') >>> t.index('a') Traceback (most recent call last): File "<pyshell#2>", line 1, in <module> t.index('a') V

  • 对python过滤器和lambda函数的用法详解

    1. 过滤器 Python 具有通过列表解析 将列表映射到其它列表的强大能力.这种能力同过滤机制结合使用,使列表中的有些元素被映射的同时跳过另外一些元素. 过滤列表语法: [ mapping-expression for element in source-list if filter-expression ] 这是列表解析的扩展,前三部分都是相同的,最后一部分,以 if开头的是过滤器表达式.过滤器表达式可以是返回值为真或者假的任何表达式 (在 Python 中是几乎任何东西).任何经过滤器表达

  • Python中flatten( )函数及函数用法详解

    flatten()函数用法 flatten是numpy.ndarray.flatten的一个函数,即返回一个一维数组. flatten只能适用于numpy对象,即array或者mat,普通的list列表不适用!. a.flatten():a是个数组,a.flatten()就是把a降到一维,默认是按行的方向降 . a.flatten().A:a是个矩阵,降维后还是个矩阵,矩阵.A(等效于矩阵.getA())变成了数组.具体看下面的例子: 1.用于array(数组)对象 >>> from n

  • 对python中raw_input()和input()的用法详解

    最近用到raw_input()和input()来实现即时输入,就顺便找了些资料来看,加上自己所用到的一些内容,整理如下: 1.raw_input() raw_input([prompt]) -> string 系统介绍中是:读取标准输入的字符串.因此,无论输入的是数字或者字符或者其他,均被视为字符格式. 如: print "Please input a num:" k = raw_input() print k print type(k) 运行结果为: Please input

  • 基于Python中求和函数sum的用法详解

    基于Python中求和函数sum的用法详解 今天在看<集体编程智慧>这本书的时候,看到一段Python代码,当时是百思不得其解,总觉得是书中排版出错了,后来去了解了一下sum的用法,看了一些Python大神写的代码后才发现是自己浅薄了!特在此记录一下.书中代码段摘录如下: from math import sqrt def sim_distance(prefs, person1, person2): # 得到shared_items的列表 si = {} for item in prefs[p

  • 对python中assert、isinstance的用法详解

    1. assert 函数说明: Assert statements are a convenient way to insert debugging assertions into a program: assert语句是一种插入调试断点到程序的一种便捷的方式. 使用范例: assert 3 == 3 assert 1 == True assert (4 == 4) print('-----------') assert (3 == 4) ''' 抛出AssertionError异常,后面程序不

随机推荐