人工智能开发实战matplotlib库应用基础

内容导读

  1. matplotlib简介
  2. 绘制直方图
  3. 绘制撒点图

一、matplotlib简介

matplotlib是一个Python 2D绘图库,它以多种硬拷贝格式和跨平台的交互式环境生成高质量的图形。

matplotlib 尝试使容易的事情变得更容易,使困难的事情变得可能。

我们只需几行代码就可以生成图表、直方图、功率谱、条形图、误差图、散点图等,为大数据的可视化和人工智能的图形化分析提供了大量绘图函数。

二、绘制直方图

Python的第三方库matplotlib提供了丰富的绘图功能,在正式绘图之前,需要在cmd命令窗口中执行如下命令:

pip3 install matplotlib

安装完matplotlib后,就可以在notebook中来使用它强大的绘图功能进行数据的可视化操作。

在数据的可视化过程中,要根据具体的数据可视化分析要求,选用不同的绘图函数来分析数据特征间的关系、查看变量的变化趋势、了解数据的整体分布情况等,去真正读懂数据,为数据深度分析和数据决策提供图形化的信息。

下面,就以绘制直方图为例,来进一步了解此类图形能为我们带来哪些数据解读信息。

案例:用直方图描述2017年到2018年间各季度第一产业的生产总值情况。

1、案例描述

第一产业的生产总值保存在GDP.csv文件中,用matplotlib绘制第一产业生产总值的直方图,并进行对比分析。

2、案例分析

首先利用numpy库将文件数据读入到二维数组中,作为绘图函数的数据源来使用,然后用matplotlib的直方图绘图函数bar()将数组中“第一产业”列的数据以柱状图进行展现。

3、案例实现

# 实现代码
	import numpy as np
	import matplotlib.pyplot as plt
	plt.rcParams['font.family'] = 'SimHei'# 将全局的字体设置为黑体
	GDP_data=np.loadtxt("./data/GDP.csv",delimiter=",",skiprows=1)
	quarter=GDP_data[0:8,0].astype(int)
	plt.bar(height=GDP_data[0:8,1],x=range(len(GDP_data[0:8,1])),
	label='第一产业GDP',tick_label=quarter)
	plt.legend()
	plt.show()	

代码行3将全局的字体设置为黑体,代码行5将数组值转换成整数,代码行6绘制柱状图,其高度用参数height来指定,即二维数组中第1列的值。

柱状图x坐标用第1产业的数据个数来表示,参数lable是图例标签,参数tick_label是x轴标签。代码行7显示图例,代码行8是显示图形。

程序的运行结果如下图所示:

由上图可以直观看出,在前8个季度中,2018年第4季度的GDP最大,最小值在2017年的第1季度,最大值将近是最小值的3倍多。

另外,每年4个季度的GDP都趋于不断增长的势头,且不同年份对应的各季度的GDP也同样呈现出上升的趋势。

由此可见,通过图形的方式对数据进行可视化,能直观解读数据内隐含的变化趋势,为数据统计和分析提供了一种便捷手段。

三、绘制撒点图

散点图是利用一系列的散点将两个变量的联合分布描绘出来,让我们从图形分布中推断一些信息,如两变量间是否存在某种有意义的关系。

散点图是统计分析中常用的一种手段,特别是在分类统计图形中,它可以算得上是中流砥柱,当数据以恰当的方式在图形中展示出来时,我们就可以非常直观地观察到某些趋势或者模式,也就揭示了变量之间的关系。

1、seaborn是在matplotlib基础上面的封装,方便直接传参数调用

让我们能做出更加吸引人注意的图表,并有助于更好分析数据。

2、使用pip3 install seaborn命令安装完seaborn库后才能使用其绘图功能

用散点图分析鸢尾花的花瓣的宽度和长度之间的相关性。

(1)引例描述

鸢尾花有关花瓣和花蕊的数据保存在iris.csv文件中,我们试图从花瓣的宽度和长度的视角去探索鸢尾花的品种类别是否与花瓣有关。

(2)引例分析

首先利用Pandas库将文件数据读入到数据框中,然后利用seaborn的关系图函数relplot绘制散点图。为便于观察,利用数据框中的种类列Species来区分颜色和散点样式。

(3)引例实现

    # 实现代码如下所示。
	import pandas as pd
	import matplotlib.pyplot as plt
	import seaborn as sns
	iris=pd.read_csv("./data/iris.csv")
	sns.set(style="whitegrid",font="simhei",font_scale=0.9)
	sns.relplot(x="Petal.Length", y="Petal.Width", hue="Species", palette=["r","b","g"],
	style="Species", data=iris);
    plt.show()

代码中的pandas库是人工智能学习中处理数据的高效工具,pandas 是基于NumPy来创建的,它纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。

以上代码中,relplot函数的参数hue和style分别表示使用不同的颜色和样式区分Species维的数据,以便观察不同品种鸢尾花在花瓣维度的分布情况。

更多内容请持续关注本站!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Qt ORM模块使用说明

附源码:QxOrm是一个C库资源-CSDN文库 使用说明 把QyOrm文件夹拷贝到自己的工程项目下, 在自己项目里的Pro文件里添加include($$PWD/QyOrm/QyOrm.pri)就能使用了 示例test_qyorm.h写了表的定义,Test_QyOrm_Main.cpp中写了所有支持的功能的例子: 通过自动表单添加…

C++ ——string的模拟实现

目录 前言 浅记 1. reserve(扩容) 2. push_back(尾插) 3. iterator(迭代器) 4. append(尾插一个字符串) 5. insert 5.1 按pos位插入一个字符 5.2 按pos位插入一个字符串 …

CleanClip for Mac 剪切板 粘贴工具 历史记录 安装(保姆级教程,新手小白轻松上手)

CleanClip:革新macOS剪贴板管理体验 目录 功能概览 多格式历史记录保存智能搜索功能快速复制操作拖拽功能 安装指南 前期准备安装步骤 配置与使用 功能概览 多格式历史记录保存 CleanClip支持保存文本、图片、文件等多种格式的复制历史记录,为用户提…

C语言 | Leetcode C语言接雨水II

题目: 题解: typedef struct{int row;int column;int height; } Element;struct Pri_Queue; typedef struct Pri_Queue *P_Pri_Queue; typedef Element Datatype;struct Pri_Queue{int n;Datatype *pri_qu; };/*优先队列插入*/ P_Pri_Queue add_pri_que…

通信工程学习:什么是SNI业务节点接口

SNI:业务节点接口 SNI业务节点接口,全称Service Node Interface,是接入网(AN)和一个业务节点(SN)之间的接口,位于接入网的业务侧。这一接口在通信网络中扮演着重要的角色&#xff0c…

几种手段mfc140u.dll丢失的解决方法,了解mfc140u.dll

在使用Windows操作系统时,许多用户可能会遇到“找不到mfc140u.dll”或“mfc140u.dll未找到”的错误提示。这个错误通常是由于该文件丢失或损坏所致。本文将详细介绍mfc140u.dll文件的作用、丢失的原因及其解决方法,帮助您快速恢复系统的正常运行。 一、m…

2024年华为9月4日秋招笔试真题题解

2024年华为0904秋招笔试真题 二叉树消消乐好友推荐系统维修工力扣上类似的题--K站中转内最便宜的航班 二叉树消消乐 题目描述 给定原始二叉树和参照二叉树(输入的二叉树均为满二叉树,二叉树节点的值范围为[1,1000],二叉树的深度不超过1000)&#xff0c…

Maven 解析:打造高效、可靠的软件工程

Apache Maven【简称maven】 是一个用于 Java 项目的构建自动化工具, 通过提供一组规则来管理项目的构建、依赖关系和文档。 1.Pre-预备知识: 1.1.Maven是什么? [by Maven是什么?有什么作用?Maven的核心内容简述_ma…

简化登录流程,助力应用建立用户体系

随着智能手机和移动应用的普及,用户需要在不同的应用中注册和登录账号,传统的账号注册和登录流程需要用户输入用户名和密码,这不仅繁琐而且容易造成用户流失。 华为账号服务(Account Kit)提供简单、快速、安全的登录功能,让用户快…

Zabbix自定义监控项与触发器

当我们需要获取某台主机上的数据时,直接利用 zabbix 提供的模板可以很方便的获得需要的数据,但是有些特别的数据,利用这些现有的模板或监控项是无法实现的,例如网站状态信息的监控、mysql数据库主从状态等信息。这是就需要自己定义键值和监控…

Java许可政策再变,Oracle JDK 17 免费期将结束!

原文地址:https://www.infoworld.com/article/3478122/get-ready-for-more-java-licensing-changes.html Oracle JDK 17的许可协议将于9月变更回Oracle Technology Network License Agreement,这将迫使用户重新评估他们的使用策略。 有句老话说&#xf…

小程序组件间通信

文章目录 父传子子传父获取组件实例兄弟通信 父传子 知识点: 父组件如果需要向子组件传递指定属性的数据,在 WXML 中需要使用数据绑定的方式 与普通的 WXML 模板类似,使用数据绑定,这样就可以向子组件的属性传递动态数据。 父…

java实际开发——数据库存储金额时用什么数据类型?(MySQL、PostgreSQL)

目录 java开发时金额用的数据类型——BigDecimal MySQL存储金额数据时用的数据类型是——decimal PostgreSQL存储金额数据时用的数据类型是——decimal 或 money java开发时金额用的数据类型——BigDecimal https://blog.csdn.net/Jilit_jilit/article/details/142180903?…

YOLOv5/v8 + 双目相机测距

yolov5/v8双目相机测距的代码,需要相机标定 可以训练自己的模型并检测测距,都是python代码 已多次实验,代码无报错。 非常适合做类似的双目课题! 相机用的是汇博视捷的双目相机,具体型号见下图。 用的yolov5是6.1版本的…

ubuntu2204安装kvm

ubuntu2204安装kvm 前言一、检测硬件是否支持二、安装软件三、创建/管理虚拟机1、创建存储池2、qemu创建镜像3、xml文件运行虚拟机1、范文2、xml文件创建虚机3、创建虚机 4、克隆虚机5、创建快照6、脚本创建VNC连接 四、创建集群1、安装glusterfs2、加入集群删除节点 3、 创建卷…

深度剖析iOS渲染

iOS App 图形图像渲染的基本流程: 1.CPU:完成对象的创建和销毁、对象属性的调整、布局计算、文本的计算和排版、图片的格式转换和解码、图像的绘制。 2.GPU:GPU拿到CPU计算好的显示内容,完成纹理的渲染, 渲染完成后将渲…

基于YOLO深度学习和百度AI接口的手势识别与控制项目

基于YOLO深度学习和百度AI接口的手势识别与控制项目 项目描述 本项目旨在开发一个手势识别与控制系统,该系统能够通过摄像头捕捉用户的手势,并通过YOLO深度学习模型或调用百度AI接口进行手势识别。识别到的手势可以用来控制计算机界面的操作&#xff0…

使用 Elastic 和 LM Studio 的 Herding Llama 3.1

作者:来自 Elastic Charles Davison, Julian Khalifa 最新的 LM Studio 0.3 更新使 Elastic 的安全 AI Assistant 能够更轻松、更快速地与 LM Studio 托管模型一起运行。在这篇博客中,Elastic 和 LM Studio 团队将向你展示如何在几分钟内开始使用。如果你…

API - String 和 ArrayList

01 API是什么 答:API 全称 Application Programming Interfaace 应用程序编程接口。就是别人写好的一些程序,我们可以使用它们去解决相关问题。 02 为什么要学API 答:不要重复造轮子。Java已经有20多年的历史了,在这20多年里Ja…

图新地球-将地图上大量的地标点批量输出坐标到csv文件【kml转excel】

0.序 有很多用户需要在卫星影像、或者无人机航测影像、倾斜模型上去标记一些地物的位置(如电线杆塔、重点单位、下水盖等) 标记的位置最终又需要提交坐标文本文件给上级单位或者其他部门使用,甚至需要转为平面直角坐标。 本文的重点是通过of…