第三节 折线图

news2024/12/23 10:29:02

文章目录

  • 折线图
    • 1.1 numpy介绍
    • 1.2 预测趋势
    • 1.3 折线图流程工具 Pandas
      • 1.3.1 读取并生成 CSV
      • 1.3.2 输出列数据
      • 1.3.3 画折线图
      • 1.5 添加横纵坐标,标题 屏幕属性
    • 1.4 画双折线图
    • 1.5 扩展:做三线图

折线图

1.1 numpy介绍

  1. 上节课我们学了柱状图, 通过柱状图可以了解, numpy主要是科学计算库, 提供了用于处理多维数组及其相关功能的工具。,用于处理任意维度的数组.
  2. 上节课, 我们了解 列表转数组, 和 数组转换列表.
  3. NumPy可用于执行各种数学操作,例如,随机数生成等。
  4. NumPy数组(称为ndarray)是Python中的一种数据结构,用于表示同构的多维数组。NumPy还具有广泛的应用程序,包括科学计算、统计学、数据分析和机器学习等。

1.2 预测趋势

  1. 前期使用柱状图,能分析统计, 但是想预测趋势, 就显得有些不那么明显.
    • 思考一下, 下面的情况如果使用 柱状图可以有效的预测么?
      在这里插入图片描述
  2. 预测趋势的 折线图.
    在这里插入图片描述
  3. 柱状图和折线图的区别
    在这里插入图片描述

1.3 折线图流程工具 Pandas

  1. 折线 流程图流程 :
    • 数据读取, 在数据分析中,有一个能够提供高性能、易于使用的数据结构和数据分析工具:Pandas
    • Pandas 一个强大的分析结构化数据的工具集,基础是Numpy(提供高性能的矩阵运算)
    • 需要安装 pip install pandas
      在这里插入图片描述
  2. Pandas 可以从各种文件格式
    • 比如CSV、JSON、SQL、Microsoft Excel 导入数据。
    • 例如: 我们先来认识一下CSV文件

1.3.1 读取并生成 CSV

  1. Pandas 读取 CVS文件:
    在这里插入图片描述

  2. 提供了方法 read_csv() 方法可以读取CSV文件的数据.

    • pd.read_csv("文件路径")
    # pandas使用
    import pandas as pd
    #通过read_csv("路径") 读取磁盘地址
    data = pd.read_csv("D:\城市.csv")
    print(data)
    
  3. 也提供了写出方法

    • data.to_scv("文件路径")
    # 使用pandas工具进行操作文件
    import pandas as pd
    
    #1.读取read_csv()文件.
    data = pd.read_csv("D:\城市.csv")
    print(data)
    
    #2. 将读取的数据写出到磁盘
    data.to_csv("D:\城市2.csv")
    

1.3.2 输出列数据

  1. 如何取出列数据中的内容, 可以像字典一样

    • 数据['列名'] ,列数据可以根据列名去获取值。
    • 数据[列明][索引] 列数据中的元素, 可以通过索引获取
      在这里插入图片描述
    # 使用pandas工具进行操作文件
    import pandas as pd
    
    #1.读取read_csv()文件.
    data = pd.read_csv("D:\北京.csv")
    print(data)
    print("-"*40)#华丽分割线
    
    #1.1 例如字典的方式 -->数据名[索引方式]
    #1.1.1可以拿到 星期数据
    week = data["星期"]
    temp = data["温度"]
    print(week,temp)
    
    print("-"*40)#华丽分割线
    
    #1.1.2 如何拿到星期的周一, 或者 温度的一个元素
    week_1= data["星期"][0]
    temp_1= data["温度"][1]
    
    print(week_1,temp_1)
    
    #2. 将读取的数据写出到磁盘
    #data.to_csv("D:\北京.csv")
    

1.3.3 画折线图

  1. 还记得上次画的柱状图么?

    • 需要使用matplotlib工具pyplot
  2. 导入工具包,数据结构的分析工具

    • pandas 工具包导入
  3. 注意乱码问题

    '''
    开始画折线图,需要导入两个工具包
        1. matplotlib 出图
        2. 读取数据 使用pandas
    '''
    #导入使用工具pyplot
    from matplotlib import pyplot as plt
    # 获取csv的工具
    import  pandas as pd
    
    #通过pandas将数据源读取进来
    data = pd.read_csv("D:\北京.csv")
    print(data)#测试是否读入成功
    
    #获取列明
    x = data["星期"]
    y = data["温度"]
    
    #处理乱码问题
    plt.rcParams["font.sans-serif"]=["SimHei"]
    plt.rcParams["axes.unicode_minus"]=False
    #绘制折现图
    plt.plot(x,y)
    #将图片保存到磁盘
    plt.savefig("D:/1.png")
    
    plt.show()
    
    
    

    在这里插入图片描述

1.5 添加横纵坐标,标题 屏幕属性

  1. 相当于在基础折线图基础上进行修饰在这里插入图片描述

    #设置x轴和y轴信息
    plt.xlabel("星期", loc='right')
    plt.ylabel('温度(℃)', loc='top')
    
  2. 添加标题 。

    • 使用 title() 标签.
    #设置图标标题
    plt.title("最近一周最高温度_北京", fontsize=30, fontweight='heavy', fontstyle='italic', backgroundcolor='blue')
    
  3. 完整代码

    '''
    开始画折线图,需要导入两个工具包
        1. matplotlib 出图
        2. 读取数据 使用pandas
    '''
    # 导入使用工具pyplot
    from matplotlib import pyplot as plt
    # 获取csv的工具
    import pandas as pd
    
    # 通过pandas将数据源读取进来
    data = pd.read_csv("D:\北京.csv")
    print(data)  # 测试是否读入成功
    
    # 获取列明
    x = data["星期"]
    y = data["温度"]
    
    # 处理乱码问题
    plt.rcParams["font.sans-serif"] = ["SimHei"]
    plt.rcParams["axes.unicode_minus"] = False
    
    #设置x轴和y轴信息
    plt.xlabel("星期", loc='right')
    plt.ylabel('温度(℃)', loc='top')
    
    #设置图标标题
    plt.title("最近一周最高温度_北京", fontsize=30, fontweight='heavy', fontstyle='italic', backgroundcolor='blue')
    # 绘制折现图
    plt.plot(x, y)
    # 将图片保存到磁盘
    # plt.savefig("D:/1.png")
    
    plt.show()
    
    

    在这里插入图片描述

1.4 画双折线图

在这里插入图片描述

  1. 画双折线图,通过上图可以发现 有两条折线
    • 根据上图所示需要使用两个城市的数据.
    • 城市.csv 数据.
    import pandas as pd
    from matplotlib import pyplot as plt
    
    
    data = pd.read_csv("D:\两个城市.csv")
    print(data)
    
    #获取列名称
    x= data["星期"]
    y_1 = data["北京"]
    y_2 = data["青岛"]
    # 处理乱码问题
    plt.rcParams["font.sans-serif"] = ["SimHei"]
    plt.rcParams["axes.unicode_minus"] = False
    #绘制折线图
    plt.plot(x,y_1)
    plt.plot(x,y_2)
    
    
    plt.show()
    
    星期,北京,青岛
    周一,22,21
    周二,25,22
    周三,24,20
    周四,27,21
    周五,26,21
    周六,27,22
    周日,28,21
    
  2. 添加标题, 背景颜色. 坐标轴x和y
    • 修饰折线图的线条风格

在这里插入图片描述

# plt.plot( x轴数据, y轴数据,  图例名,    线条颜色,     线条风格,       线宽,     透明度 )
# plt.plot(     x,      y , label='XX',color='XX',linestyle='XX',linewidth=X, alpha=X)
plt.plot(x,y1,label='北京',color='red',linestyle='--',linewidth=5,alpha=1)
plt.plot(x,y2,label='青岛',color='blue',linestyle=':',linewidth=2,alpha=1)

#添加 图示例
plt.legend(loc='upper left')

在这里插入图片描述

1.5 扩展:做三线图

  1. 已知 数据如下:请输出折线图
星期,北京,青岛,上海
周一,22,21,23
周二,25,22,25
周三,24,20,24
周四,27,21,26
周五,26,21,24
周六,27,22,27
周日,28,21,25
from matplotlib import pyplot as plt

import pandas as pd
data = pd.read_csv('数据.csv') # 获取日期数据
print(data)

x = data["星期"]
y1 = data["北京"]
y2 = data["青岛"]
y3 = data["上海"]

fig = plt.figure(figsize=(10,5))

# # xticks(位置列表,每个位置的具体信息,字体)
plt.xlabel("星期",loc='right')
plt.ylabel('温度(℃)',loc='top')


# plt.plot( x轴数据, y轴数据,  图例名,    线条颜色,     线条风格,       线宽,     透明度 )
# plt.plot(     x,      y , label='XX',color='XX',linestyle='XX',linewidth=X, alpha=X)
plt.plot(x,y1,label='北京',color='red',linestyle='--',linewidth=5,alpha=1)
plt.plot(x,y2,label='青岛',color='blue',linestyle=':',linewidth=2,alpha=1)
plt.plot(x,y3,label='上海',color='green',linestyle='-.',linewidth=3,alpha=1)

#乱码处理
plt.rcParams["font.sans-serif"] = ["SimHei"]
plt.rcParams["axes.unicode_minus"] = False
# 添加图例----------------------------1
plt.legend(loc='upper left')

#plt.savefig('双折线图.png')
plt.show()

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

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

相关文章

部署lnmp框架nginx在上一章节

目录 一.安装mysql服务 1.下载mysql和模块boost并解压包到/opt目录下 2.创建运行用户 3.进入mysql包目录下面进行编译安装 4.创建普通用户管理mysql useradd -s /sbin/nologin mysqlchown -R mysql:mysql /usr/local/mysql/ 5.修改配置文件 6.设置环境变量,申…

等约束二次规划中的特征分解研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

C++——用红黑树封装map和set

目录 1. 前言 2. 红黑树模板参数的控制 3. 模板参数中仿函数的增加 4. 红黑树迭代器的实现 5. 红黑树的begin()和end() 6. 红黑树的Find查找函数 7. 红黑树封装map和set源码 7.1 map.h 7.2 set.h 7.3 test.cpp 1. 前言 我们都知道set是K模型的容器,而map…

【深度学习】6-3 卷积神经网络 - 卷积层和池化层的实现

卷积层和池化层的实现 如前所述,CNN 中各层间传递的数据是 4 维数据。所谓 4 维数据,比如数据的形状是 (10, 1, 28, 28),则它对应 10 个高为 28、长为 28、通道为 1 的数据。用 Python 来实现的话,如下所示 >>> x np.r…

CentOS 7.9 安装 Docker

CentOS 7.9 安装 Docker 文章目录 CentOS 7.9 安装 Docker一、相关博客二、安装 Docker1、安装 device-mapper-persistent-data 和 lvm2 两个依赖2、添加阿里云 Docker 镜像源3、安装 Docker 社区版4、启动5、运行测试 三、配置阿里云镜像加速器 一、相关博客 【Docker】002-D…

基于ASP.NET MVC的网络书店系统/书店商城

摘 要 随着书店规模的不断扩大,人流数量的急剧增加,有关书店的各种信息量也在不断成倍增长。面对庞大的信息量,就需要有网络书店来提高书店工作的效率。通过这样的系统,我们可以做到信息的规范管理和快速查询,从而减少…

1Panel 安装部署

1Panel 是一个现代化、开源的 Linux 服务器运维管理面板。 1. 环境要求 安装前请确保您的系统符合安装条件: 操作系统:支持主流 Linux 发行版本(基于 Debian / RedHat,包括国产操作系统); 服务器架构&#…

LangChain: LLM应用开发框架

GitHub - hwchase17/langchain: ⚡ Building applications with LLMs through composability ⚡⚡ Building applications with LLMs through composability ⚡ - GitHub - hwchase17/langchain: ⚡ Building applications with LLMs through composability ⚡https://github.c…

6.22 驱动开发作业

字符设备驱动内部实现原理 1.字面理解解析: 字符设备驱动的内部实现有两种情况: 情况1.应用层调用open函数的内部实现: open函数的第一个参数是要打开的文件的路径,根据这个路径 虚拟文件系统层VFS 可以找到这个文件在文件系统…

Cookie,Session,Token,JWT授权方式对比

文章目录 HTTPCookieSessionSession认证流程Session 共享方案 TokenToken认证流程 JWTJWT认证流程 HTTP HTTP 本质上是无状态的,每个请求都是互相独立、毫无关联的,协议不要求客户端或服务器记录请求相关的信息。服务端无法确认当前访问者的身份信息&…

升级一下《单词猜谜》

网上的单词猜谜都是英文的,不会英语的头痛 于是,我把《单词猜谜》改成中文,并且加上了点新功能: import random as rdmc rdm.randint(1, 3)name1 input("你的名字叫什么?:") if c 1:turns1 …

详解BigDecimal

目录 1.概述 2.基本API 2.1.创建 BigDecimal 对象: 2.3.基本运算方法: 2.4.精度控制方法: 2.5.比较 2.6.转换 3.注意事项 4.底层实现原理 1.概述 精度丢失,由于现代计算机中采用了浮点数来表示小数,这种表示…

小马哥训练营-Java EE单体架构

什么是Servlet Servlet 是一种基于 Java 技术的 Web 组件,用于生成动态内容,由容器管理。类似于其他 Java 技术组件,Servlet 是平台无关的 Java 类组成,并且由 Java Web 服务器加载执行。通常情况,由 Servlet 容器提供…

(十一)CSharp-LINQ-查询表达式(2)

一、查询表达式 1、查询表达式的结构 查询表达式由 from 子句和查询主体组成。 子句必须按照一定的顺序出现。from 子句和 select…group 子句这两部分是必需的。其他子句是可选的。在 LINQ 查询表达式中,select 子句在表达式最后。可以有任意多的 from…let…wh…

Nginx服务器的六个修改小实验

一、Nginx虚拟主机配置 1.基于域名 (1)为虚拟主机提供域名解析 配置DNS 修改/etc/hosts文件 (2)为虚拟主机准备网页文档 #创建网页目录 mkdir -p /var/www/html/abc mkdir -p /var/www/html/def ​ #编写简易首页html文件 ec…

Finalshell安全吗?Xshell怎么样?

文章目录 一、我的常用ssh连接工具二、Xshell2.1 下载:认准官网2.2 Xshell 配置2.3 Xftp和WinSCP 一、我的常用ssh连接工具 之前讲过: 【服务器】远程连接选SSH(PUTTY、Finalshell、WinSCP) 还是 远程桌面(RDP、VNC、…

代码随想录训练营第四十二天|01背包、416.分割等和子集

01背包 代码随想录理论讲解 背包问题分类 01背包 问题描述 有n件物品和一个最多能背重量为w的背包。第i件物品的重量是weight[i],得到的价值是value[i]。每件物品只能用一次,求解将哪些物品装入背包里物品价值总和最大。 动归五部曲 确定dp数组及下…

基于java web高校社交系统 /springboot高校社交系统

摘 要 随着信息技术和网络技术的飞速发展,人类已进入全新信息化时代,传统管理技术已无法高效,便捷地管理信息。为了迎合时代需求,优化管理效率,各种各样的系统应运而生,各行各业相继进入信息管理时代&#…

CSS处理页面元素浮动的几个办法

CSS处理页面元素浮动的几个办法 不使用浮动的情况下&#xff0c;子盒子1和2分别在盒子1中占据一行的空间。 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" cont…

Java 8新特性:方法引用的介绍与使用

&#x1f389;&#x1f389;&#x1f389;点进来你就是我的人了博主主页&#xff1a;&#x1f648;&#x1f648;&#x1f648;戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔&#x1f93a;&#x1f93a;&#x1f93a; 目录 1. 什么是方法引用&#xff1f; 2. 方法引用的…