python数据分析-matplotlib折线图知识总结01

news2024/11/25 6:36:17

python绘图库matplotlib的知识总结

    • 一.matplotlib是什么
    • 二.matplotlib的安装与导入
    • 三.matplotlib的常用函数
    • 四.matplotlib绘制折线图的使用方法
      • 1.设置图形大小
      • 2. 利用数据绘图
      • 3.调整x,y轴的刻度,旋转角度,显示描述信息,绘制网格,添加图例
      • 4.图形的样式
      • 5.绘制多条折线
      • 6.显示绘制的图
    • 四.总结:

一.matplotlib是什么

matplotlib是一个python内置的绘图库,它主要是把我们处理的数据,通过可视化的形式展示出来
主要用于做可视化的图表,是模仿于matlab构建的

二.matplotlib的安装与导入

首先matplotlib的安装可以直接在pycharm编译器终端输入(pip install matplotlib)
但是我们按照上面的方式安装可能会导致安装的速度很慢,在此我们可以使用镜像源
进行模块的安装
镜像源:

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
先在终端配置这个pip设置,这算一个永久的镜像源,配置之后,你输入上面
(pip install matpltlib)下载模块就不会因为限速而导致下载慢的问题

导入matplotlib

from matploltlib import pyplot as plt

三.matplotlib的常用函数

plt.title()添加标题
plt.text()在任意位置添加文本
plt.annotate()在任意位置增加带箭头的注释文本

plt.annotate()有哪些参数
1.要显示的文本
2.xy传入(2,3)箭头所指向的坐标点位置
3.xytext传入文本显示的位置也是坐标
4.arrowprops传入字典类型的数据,数据内容是给箭头设置的一些属性

from matplotlib import pyplot as  plt
import matplotlib

font = 'Microsoft Yahei'
# 显示大学生10天每天的消费金额
x = range(1, 11)  #
y = [23, 25, 25, 23, 26, 28, 30, 80, 21, 19]

plt.plot(x, y, label='科师大')
plt.xlabel('天数(单位: 天)', fontproperties=font)
plt.ylabel('消费额(单位: 元)', fontproperties=font)
plt.title('大学生10天的消费额', fontproperties=font)

plt.annotate(
    '超额消费',
    xy=(8, 80),
    xytext=(9, 80),
    arrowprops=dict(facecolor='red', shrink=0.1, width=2),
    # facecolor箭头颜色 shrink 箭头起始和结束位置两侧的空白大小 width箭头宽度
    fontproperties=font
)

plt.show()

在这里插入图片描述

四.matplotlib绘制折线图的使用方法

1.设置图形大小

两个参数,一个图片大小,第二个是图片的分辨率

plt.figure(figsize=(20, 8), dpi=80)

2. 利用数据绘图

在这里插入图片描述
通过查看plot的内部实现可以看到plot里面参数可以有(横坐标数据)和纵坐标数据它们是列表的类型,元素必须一样多,一一对应,然后可以设置线条的颜色,粗细,以及线条样式等等

plt.figure(figsize=(20, 8), dpi=80)
x = [0, 2, 4, 6, 8]
y = [1, 5, 3, 9, 7]
plt.plot(x, y)

3.调整x,y轴的刻度,旋转角度,显示描述信息,绘制网格,添加图例

调整刻度是因为我们的刻度太密,导致我们的刻度下方的刻度值显示不完整,使得我们的观赏性不好,那么这个时候就可以使用我们的调整刻度的功能,使得我们绘制的图更清晰明了

旋转角度也是为了美观,旋转角度都是使用rotation这个参数进行设置.描述信息就是指定x,y轴所代表的是什么,使得图例更完整 如果直接添加的话,信息描述是不能显示的,这个时候我们就需要导入matplotlib,然后通过matplotlib中的rcparams进行设置,当然还可以直接选择一种微软自带的字体

图例:就是当你要在一个绘制区域绘制两个及两个以上的图的时候,需要通过图列分辨哪根线代表的是什么,然而这里也需要中文显示,但是这里的中文显示和前面描述信息的中文显示传参略有不同,它只需要使用prop进行传参就好了,当然我们还可以设置图例的位置
图例的位置传一个loc的参数

from matplotlib import pyplot as  plt
import random
import matplotlib

# 选择一种字体
my_font = 'Microsoft Yahei'

# 设置图片大小
plt.figure(figsize=(20, 8), dpi=80)
x = [range(120)]
y = [random.randint(20, 35) for i in range(120)]

plt.plot(x, y,label='两小时的体温变化')

# 调整x的尺度
_xtick_labels = [f"10点{i}分" for i in range(60)]
_xtick_labels += [f"11点{i}分" for i in range(60)]

plt.xticks(x[::3], _xtick_labels[::3],my_font)

#绘制网格
plt.grid(alpha = 0.1)#参数是透明度的设置0-1(1代表完全显示)

#添加图例
plt.legend(prop=my_font)


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

在这里插入图片描述

4.图形的样式

color 设置线条的颜色
linestyle 线条的样式
alpha设置网格的透明度
linewidth 线条得粗细

5.绘制多条折线

from matplotlib import pyplot as plt
import matplotlib

x1 = [51, 73, 5, 34, 69, 11]
y1 = [52, 23, 16, 32, 76, 32]
x2 = [12, 45, 67, 78, 89, 45]
y2 = [34, 6, 21, 67, 34, 89]
plt.plot(x1, y1,label="三校一班")
plt.plot(x2, y2,label="三校二班")
plt.xlabel('身高',fontproperties='SimHei')
plt.ylabel('体重',fontproperties='SimHei')
plt.title('中学生体检',fontproperties='SimHei')
plt.legend(prop='SimHei')
plt.show()

在这里插入图片描述
当然此处还可以通过plot()传参facecolor=red 进行折线图背景的修改

6.显示绘制的图

plt.show()

四.总结:

利用matplotlib绘制折线图,主要用折线图的形式反应自变量和因变量之间的关系,进而反应事物的变化情况

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/417719.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python知识记录:灵活使用numpy提高python数据分析效率!

NumPy是Python语言的一个第三方库,其支持大量高维度数组与矩阵运算。 作为python科学计算领域的三剑客之一,numpy在数据分析处理方面有着独特的魅力! numpy模块的出现更多的是在数组处理的操作上面,并且支持和python常用的数据结…

Transformer在时序预测的应⽤第一弹——Autoformer

Transformer在时序预测的应⽤第一弹——Autoformer 原文地址:Autoformer: Decomposition Transformers with Auto-Correlation for Long-Term Series Forecasting(NIPS 2021) 做长时间序列的预测 Decomposition把时间序列做拆分&#xff0c…

目标检测——YOLOv7(十三)

简介: 继美团发布YOLOV6之后,YOLO系列原作者也发布了YOLOV7。主要从两点进行模型的优化:模型结构重参化和动态标签分配。 YOLOv7的特点是快!相同体量下比YOLOv5精度更高,速度快120%,比YOLOX快180%。 Github…

RabbitMQ消息丢失的情况,以及如何通过代码解决

目录 RabbitMQ消息丢失问题: 代码部分: 完整代码: RabitMQConfig: CourseMQListener: 生产者跟交换机通信的消息丢失解决 : 交换机跟消息队列的消息丢失: 消息队列跟消费者的消息丢失: …

自动处理【支付宝交易支付投诉管理系统】配置指南

大家好,我是小悟 已经有小伙伴开始使用自动处理【支付宝交易支付投诉管理系统】,所以详细介绍一下如何配置。 阅读这篇文章之前,结合这篇【连夜干出来一个自动处理【支付宝交易支付投诉管理系统】,支持多商户】干货食用更佳。 连…

Filter 过滤器 Listener 监听器

Filter web中的过滤器当用户访问服务器资源时,过滤器将请求拦截下来,完成一些通用的操作应用场景如:登录验证、统一编码处理、敏感字符过滤 编写filter对目标资源servlet进行拦截 1. 编写java类,实现filter接口 public class Qu…

智慧医院人员定位系统解决方案,助力医院安全管理智能化

随着经济的发展与生活质量的提升,人们对医疗健康的重视度越来越高,医疗行业也因此蓬勃发展起来。然而,不断扩大的经营规模也给医院安全管理带来挑战和难题。 医院安全管理痛点 1、医疗事件信息获取不及时甚至存在瞒报现象,管理者…

yc博客项目创建-白手起家

初始化项目 1、码云创建代码库 2、下载码云项目到本地 3、IDEA直接生成springboot项目 接入mysql 1、配置文件 2、代码配置 启动项目 访问项目 访问连接: http://localhost:8089/yc-blog/index/listlistContent 注意点:server.servlet.context-path…

Redis用于全局ID生成器、分布式锁的解决方案

全局ID生成器 每个店铺都可以发布优惠卷 当用户抢购时,就会生成订单并保存到tb_voucher_order这张表中,而订单表如果使用数据库自增id就存在一些问题: 1.id的规律性太明显 2.受单表数据量的限制 全局ID生成器,是一种在分布式系…

极光笔记 | 如何在Shopify中使用EngageLab (下)

Sendgird发布的《2022 Global Messaging Engagement Report》中揭示了世界各地的用户更喜欢用哪种方式与品牌互动,结论是:“电子邮件仍然是第一名(短信紧随其后)”。4800多名受访者中,有18%的人将电子邮件列为他们最常…

普通人是否能从ChatGPT中分一杯羹?

ChatGPT3.0刚刚推出,最开始的时候,人们只是将ChatGPT看作一个很会聊天的机器人,无论问题多么天马行空,它的答案看上去都有理有据。后来,像打开潘多拉魔盒一样,很多人开始拿它编大纲、撰写文案、编代码、创作…

Docker本地推送到hub,以及上传时遇到的问题解决

1.在本地创建一个 Dockerfile FROM ubuntu:latest RUN apt-get update && apt-get install -y curl CMD ["curl", "https://www.baidu.com"]2.在本地构建 Docker 镜像 在创建本地docker镜像的时候[TAG] .和[TAG] /PATH/TO 需要注意dockerfile文件…

ATTCK v12版本战术介绍——防御规避(二)

一、引言 在前几期文章中我们介绍了ATT&CK中侦察、资源开发、初始访问、执行、持久化、提权战术、防御规避(一)理论知识及实战研究,本期我们为大家介绍ATT&CK 14项战术中防御规避战术(二),包括防御…

【数据结构】顺序栈和链栈的基本操作(定义,初始化, 入栈,出栈,取栈顶元素,遍历,置空)

🎊专栏【数据结构】 🍔喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。 🎆音乐分享【勋章】 大一同学小吉,欢迎并且感谢大家指出我的问题🥰 目录 ⭐栈的分类 ✨顺序栈 🎈优点: &…

离线安装k8sv1.20.5版本并部署服务

注意:我这里的离线安装包是V1.20.5的,单安装一个master节点并部署服务,保证可以使用。如果安装集群也是可以的,但是需要把离线包上传到所有的node节点,导入,最后把node节点接入到K8S集群即可,本…

js flyout 2: VScroll

目录版权描述测试页面showFlyout问题1 - scroll 实现可能不准?问题2 - 容器内容重排可导致浮层错位关于重排小结附录 - 完整代码版权 本文为原创, 遵循 CC 4.0 BY-SA 版权协议, 转载需注明出处: https://blog.csdn.net/big_cheng/article/details/130101031. 文中代码属于 pu…

【致敬未来的攻城狮计划】学习总结

文章目录【致敬未来的攻城狮计划】学习总结前言学习总结一、RT-Thread二、RA2E1开发板三、学习移植RT-Thread四、学习RT-Thread设备五、其他收获六、总结【致敬未来的攻城狮计划】学习总结 🚀🚀开启攻城狮的成长之旅!这是我参与的由 CSDN博客…

【RabbitMQ学习日记】——死信队列与延迟队列

一、死信队列 1.1 相关概念 死信,顾名思义就是无法被消费的消息,字面意思可以这样理解,一般来说,producer 将消息投递到 broker 或者直接到 queue 里了,consumer 从 queue 取出消息进行消费,但某些时候由…

云擎未来,智信天下 | 2023移动云大会来了!

新三年,新征程 2023年作为新三年开局之年 移动云又将以怎样的 全新品牌形象、全新战略规划 向“一流云服务商”战略目标勇毅前行? 答案就在这里: 2023移动云大会,官宣定档! 2023.4.25 - 4.26 苏州金鸡湖国际会…

MATLAB配置C/C++库(Visual Studio,MinGW-w64 C/C++ 编译器)问题(包括低版本matlab配置高版本VS)

问题描述 使用matlab加载C语言的库函数时,需要提前配置好C/C编译器,否则在matlab中使用 loadlibrary 加载C /C库中的函数时候,会报错: “未找到支持的编译器或 SDK。您可以安装免费提供的 MinGW-w64 C/C 编译器;请参…