python 用matplotlib绘制折线图详情

 更新时间:2021年12月01日 09:30:22   作者:盆友圈的小可爱  
这篇文章主要讲诉了python 用matplotlib绘制折线图的详细内容,众所周知,matplotlib 是一款功能强大开源的数据可视化模块,凭借着强大的扩展性构建出更高级别的绘图工具接口如seaborn、ggplot,下面我们就根据之前两篇文章基础掌握折线图的绘制,需要的朋友可以参考一下

复习回顾:
众所周知,matplotlib 是一款功能强大开源的数据可视化模块,凭借着强大的扩展性构建出更高级别的绘图工具接口如seaborn、ggplot。我们来看看往期学习章节内容概述吧~

  • matplotlib 模块基础知识:对matplotlib模块具有便利的交互新创建图表、多种图表定制以及强大的可扩展性,matplotlib可满足不同用户的使用,初次体验绘制图表功能
  • matplotlib 模块底层原理:matplotlib 模块包含脚本层、美工层及后端层,对各个层相关提供的操作进行学习

matplotlib 官网教程中,可以绘制诸如折线图、柱状图、饼图等常规图外,还有可以绘制动态图、散点图、等高线图、帽子图、多个子图等

接下来,我们将继续学习matplotlib 图表绘制具体的功能实操,掌握针对不同图表的绘制

1. 折线图概述

1.1什么是折线图?

  • 折线图是在坐标中通过线条升降的方式展示随着某种变化而变化的连续性数据
  • 通过折线的起伏表示数据的增减变化的情况
  • 折线图可以拆分为动态折线图、依存关系折线图和次数分布折线图

1.2折线图使用场景

折线图自身的线条的变化,可以在图表中清晰读取到数据变化情况,可以运用的场景特点如下

  • 描绘统计事项总体指标的动态
  • 研究对象间的依存关系
  • 总体中各个部分的分配情况
  • 适合大量数据展示其趋势变化

1.3绘制折线图步骤

  • 导入matplotlib.pyplot模块
  • 准备数据,可以使用numpy/pandas整理数据
  • 调用pyplot.plot()绘制折线图

1.4案例展示

接下来我们使用折线图来展示从 10份 所有文章访问量数据展示

所有的案例用到的数据如下:

import random


x_data = ["10月{}日".format(i+1) for i in range(30)]

y_view = [random.randint(50,200) for i in range(30)]

展示10月份数据折线图:

  import matplotlib.pyplot as plt
 import random


 plt.rcParams["font.sans-serif"]=['SimHei']
 plt.rcParams["axes.unicode_minus"]=False

 x_data = ["10月{}日".format(i+1) for i in range(30)]

 y_view = [random.randint(50,200) for i in range(30)]

 plt.figure(figsize=(20,5),dpi=90)

 plt.plot(x_data,y_view)

 plt.xticks(rotation=45)
 plt.title("访问量分析")
 plt.xlabel("日期")
 plt.ylabel("访问量")

 plt.show()

2. 折线2D属性

2.1linestyle:折线样式

属性值 说明
"-" 、"solid" 默认实线显示
"--"、"dashed" 虚线
"-." "dashdot" 点划线
":"、"dotted" 虚线
"None" """"

2.2color:折线颜色

颜色简称:

属性值 说明 属性值 说明
"b"/"bule" 蓝色 "m"/"magenta" 品红
"g" /"green" 绿色 "y"/"yellow" 黄色
"r"/"red" 红色 "k"/"black" 黑色
"c"/"cyan" 青色 "w"/"white" 白色

rgb

  • 格式形式:(r,g,b) 或者(r,g,b,a)
  • 取值范围:r,g,b,a 取值范围在[0,1]之间
  • [0,1]之间的浮点数的字符串形式,0表示黑色,1表示白色

2.3marker:坐标值标记

  • marker 标记物通常在折线图plot、散点图scatter和误差图errorbar上应用
  • marker 提供多达40个标记的样式可供选择,具体详情看见marker官方说明
  • marker 在图表中常用的有如下:

属性值 说明 属性值 说明
"o" ⏺️圆圈标记 "8" 八边形
"v" 🔽倒三角标记 "s" ⏹️正方形标记
"^" 🔼正三角标记 "*" ⭐星号
"<" ◀️左三角标记 "+" ➕加号
">" ▶️右三角标记 "x" X星星
"1" 向下Y标记 "D" 🔷钻石标记
"2" 向上Y标记 " "
"3" 向左Y标记 "_" _水平线标记
"4" 向右Y标记 "p" ⭐五角星标记

标记还提供其他方法
  • markeredgecolor:标记边界颜色
  • markeredgewidth:标记宽度
  • markfacecorlor:标记填充色
  • markersize:标记大小

2.4fillstyle:标记填充方法

属性值 说明
"full" 整个标记
"left" 左边标记一半
"right" 右边标记一半
"bottom" 底部标记一半
"top" 顶部标记一半
"none" 无填充

2.5linewidth(lw): 直线宽度

对第一节案例添加直线属性:虚线表示,坐标用绿色左半填充圈标记

#

 直线属性
plt.plot(x_data,y_view,linestyle="--"
,marker="o",markeredgecolor="g",fillstyle="left")

更多属性:
matplotlib官网对直线2D属性有更多的介绍

3. 坐标管理

3.1坐标轴名字设置

  • 设置X轴名称:pyplot.xlabel(str)
  • 设置y轴名称:pyplot.ylabel(str)

3.2坐标轴刻度设置

  • x轴坐标刻度设置:pyplot.xticks(ticks=[],rotation)
  • y轴坐标刻度设置:pyplot.yticks(ticks=[],rotation)

参数说明:

  • ticks:列表类型,表示x轴范围
  • rotation:翻转角度

3.3坐标轴位置设置

  • 坐标轴位置设置需要通过pyplot.gca()先获取当前的Axes
  • 然后调用ax.spines[].set_position()设置位置
  • ax.spines['bottom'].set_position(('axes',0.5)) 表示将x轴设置在y轴50%处

3.4指定坐标值标注

pyplot.annotate() 展示指定坐标点的(x,y)值

用接口参数说明:

参数 说明
txt 展示的文本
xy 注释的(x,y)
xytext xy展示的文本
color 展示的文本颜色

继续改造第一节案例:标记出最大访问,y轴移到x轴中心

max_id = np.argmax(y_view)


show_max = '['+str(x_data[max_id])+','+str(y_view[max_id])+']'


plt.figure(figsize=(20,5),dpi=90)

ax= plt.gca()

ax.spines["left"].set_position(('axes',0.5))

plt.plot(x_data,y_view,linestyle="--",marker="o",markeredgecolor="g",fillstyle="left")

plt.xticks(ticks=np.arange(0,30),rotation=60)

plt.annotate(show_max, xy=(x_data[max_id],y_view[max_id] ), xytext=(x_data[max_id],y_view[max_id]), color='r')

4. 多条折线展示图

在一个图表中,我们可以多次调用plot()绘制多条折线展示在同一个表格中

 ```python
star_view = [random.randint(100,200) for i in range(30)]

plt.plot(x_data,y_view,linestyle="--",marker="o",markeredgecolor="g",fillstyle="left")
plt.plot(x_data,star_view,linestyle="-",marker="s",markeredgecolor="r",fillstyle="right")
```
   

5. 图列管理

当一个图表中存在多个折线图时,我们需要使用图例管理来对每个折线代表对象

  1. pyplot.legend(loc): 对图表中折线进行说明
  2. loc参数属性值:

属性 代码 属性 代码
'best' 0 'right' 5
'upper right' 1 'center left' 6
'upper left' 2 'center right' 7
'lower left' 3 'lower center' 8
'lower right' 4 'upper center' 9
'center' 10

label属性,注释每条折线的对象

plt.plot(x_data,y_view,linestyle="--",marker="o",markeredgecolor="g",fillstyle="left",label="all")
plt.plot(x_data,star_view,linestyle="-",marker="s",markeredgecolor="r",fillstyle="right",label="star")

plt.legend()

总结:
本文 我们对matplotlib 模块 折线图plot()相关方法和属性进行,大家在平时工作中可以多多实践,折线图还是用的比较多的

到此这篇关于python 用matplotlib绘制折线图详情的文章就介绍到这了,更多相关python matplotlib绘制折线图内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 使用Python连接SQLite数据库的操作步骤

    使用Python连接SQLite数据库的操作步骤

    SQLite是一种轻量级的嵌入式数据库,广泛应用于各种应用程序中,Python提供了内置的sqlite3模块,使得连接和操作SQLite数据库变得非常简单,本文给大家介绍了使用Python连接SQLite数据库的操作步骤,需要的朋友可以参考下
    2024-12-12
  • 如何使用Python打包APK

    如何使用Python打包APK

    这篇文章主要介绍了Linux环境下的Python打包和部署实践的相关资料,需要的朋友可以参考下
    2024-02-02
  • 一文带你深入了解Python中的多进程编程

    一文带你深入了解Python中的多进程编程

    在 Python 中,多进程编程是一种提高程序运行效率的有效手段,本文将详细讲解 Python 多进程编程的基本概念,使用方法及注意事项,希望对大家有所帮助
    2024-12-12
  • python Canny边缘检测算法的实现

    python Canny边缘检测算法的实现

    这篇文章主要介绍了python Canny边缘检测算法的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04
  • python文件名批量重命名脚本实例代码

    python文件名批量重命名脚本实例代码

    这篇文章主要给大家介绍了关于python文件名批量重命名脚本的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • python numpy 中linspace函数示例详解

    python numpy 中linspace函数示例详解

    这篇文章主要介绍了python numpy 中linspace函数,本文我们通过示例学习了linspace函数,如果你熟悉NumPy,一定也注意到还有np.arange函数,两者最大差异是,linspace能够精确控制终止值终值,而arange能够更直接地控制序列中值之间的增量,需要的朋友可以参考下
    2023-03-03
  • 人工智能最火编程语言 Python大战Java!

    人工智能最火编程语言 Python大战Java!

    开发者到底应该学习哪种编程语言才能获得机器学习或数据科学这类工作呢?这是一个非常重要的问题。本文为大家提供作者的答案并解释原因
    2017-11-11
  • Python PyQt5实战项目之查询器的实现流程详解

    Python PyQt5实战项目之查询器的实现流程详解

    PyQt5以一套Python模块的形式来实现功能。它包含了超过620个类,600个方法和函数。它是一个多平台的工具套件,它可以运行在所有的主流操作系统中,包含Unix,Windows和Mac OS。PyQt5采用双重许可模式。开发者可以在GPL和社区授权之间选择
    2021-11-11
  • media配置及把用户头像从数据库展示到前端的操作方法

    media配置及把用户头像从数据库展示到前端的操作方法

    media配置可以让用户上传的所有文件都固定的存放在某一个指定的文件夹下,接下来通过本文给大家介绍下media配置及把用户头像从数据库展示到前端的操作,需要的朋友可以参考下
    2022-09-09
  • django js实现部分页面刷新的示例代码

    django js实现部分页面刷新的示例代码

    今天小编就为大家分享一篇django js实现部分页面刷新的示例代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05

最新评论