【数据可视化】第二章——基于matplotlib的数据可视化

news2024/10/7 7:29:49

目录

  • 系列课程学习目标
  • 1. 基于matplotlib的数据可视化
  • 2 matplotlib.pyplot函数库简介
  • 3 matplotlib.pyplot相关函数简介
    • 3.1 plt.plot(x, y, format_string, **kwargs)
    • 3.2 plt.title()
    • 3.3 plt.xlabel()/ylabel()
    • 3.4 plt.legend()
    • 3.5 pyplot的中文显示
      • 3.5.1 第一种方法
      • 3.5.2 第二种方法
    • 3.6 pyplot的文本显示
    • 3.7 pyplot的子绘图区域
  • 4. pyplot的基础图表函数
  • 5. numpy和matplotlib绘图综合应用


系列课程学习目标

  • [✔] 了解Python中的可视化库
  • [✔] 了解NumPy库的基本原理
  • [✔] 掌握matplotlib库的绘图方法
  • 掌握pandas库的绘图方法
  • 掌握seaborn库的绘图方法
  • 掌握Bokeh库的绘图方法
  • 掌握pyqtgraph库的绘图方法

1. 基于matplotlib的数据可视化

Matplotlib: 最流行的Python底层绘图库,主要做数据可视化图表,名字取材于MATLAB,模仿MATLAB构建
在这里插入图片描述
Matplotlib库的效果 http://matplotlib.org/gallery.html
在这里插入图片描述
为什么要学习matplotlib?
1.能将数据进行可视化,更直观的呈现
2.使数据更加客观、更具说服力
在这里插入图片描述

2 matplotlib.pyplot函数库简介

1️⃣ Matplotlib库由各种可视化类构成,内部结构复杂,受Matlab启发。

2️⃣matplotlib.pyplot是绘制各类可视化图形的命令子库,相当于快捷方式。

3️⃣pyplot中的每一个函数都会对画布图像作出相应的改变,如创建画布、在画布中创建一个绘图区、在绘图区上画几条线、给图像添加文字说明等。matplotlib.pyplot中常见函数包含有plt.figure、plt.subplot以及plt.axes。

🔹Matplotlib库的使用

import matplotlib.pyplot as plt
plt.plot([2,1,3,5,4])
plt.show()

在这里插入图片描述
但是目前存在以下几个问题:

1.设置图片大小(想要一个高清大图)
2.保存到本地
3.描述信息,比如x轴和y轴表示什么,这个图表示什么
4.调整x或者y的刻度的间距
5.线条的样式(比如颜色,形状等)
6.标记出特殊的点(比如告诉别人最高点和最低点在哪里)

  1. plt.figure()
    使用plt.figure()函数创建一个全局绘图区域,其中可包含如下参数:

    figsize:设置图像的宽度和高度,单位为英寸
    facecolor:设置图像背景颜色
    dpi:设置绘图对象的分辨率
    edgecolor:设置图像边框颜色

    在这里插入图片描述
    在这里插入图片描述

  2. plt.xticks() /plt.yticks() 设置当前X轴/Y轴刻度位置的值
    在这里插入图片描述
    在这里插入图片描述

  3. plt.subplot(nrows, ncols, plot_number)
    subplot用于在全局绘图区域中创建自绘图区域,其中可包含如下参数:
    nrows:subplot的行数
    ncols:subplot的列数
    plot_number:子图的位置

    ◾使用subplot可以规划figure划分为n个子图,但每条subplot命令只会创建一个子图 。
    ◾在全局绘图区域中创建一个分区体系,并定位到一个子绘图区域。在这里插入图片描述
    🔹plt.subplot(nrows, ncols, plot_number)
    在这里插入图片描述
    在这里插入图片描述

  4. plt.axes()
    ◾plt.axes(rect,facecolor=’w’)创建一个坐标系风格的子绘图区域。
    ◾ 默认创建一个subplot(111) 坐标系,参数rect=[left,bottom,width,height]中4个变量的范围都是[0,1],表示坐标系与全局绘图区域的关系。代码如下:

import matplotlib.pyplot as plt
plt.axes([0.1,0.1,0.7,0.3], facecolor='y')
plt.show()

🔹plt.axes()
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  1. plt.subplots_adjust()
    ◾plt.subplots_adjust()用于调整子绘图区域的布局。常见语法如下:
    plt.subplots_adjust(left=,bottom=,right=,top=, hspace=)
    left: 画布中子图左边离y轴距离
    bottom: 画布中子图下边离x轴距离
    right: 画布中子图右边离y轴距离
    top: 画布中子图上边离x轴距离
    hspace:子图之间的距离

3 matplotlib.pyplot相关函数简介

在matplotlib.pyplot 库中有plt子库,该子库提供了7个用于读取和显示的函数, 17个用于绘制基础图表的函数,3个区域填充函数,9个坐标轴设置函数以及11个标签与文本设置函数

3.1 plt.plot(x, y, format_string, **kwargs)

plt.plot(x, y, format_string, **kwargs)

x: X轴数据,列表或数组,可选。
y: Y轴数据,列表或数组。
format_string: 控制曲线的格式字符串,可选。
**kwargs: 第二组或更多(x, y, format_string)

当绘制多条曲线时,各条曲线的x不能省略。
在这里插入图片描述
format_string: 控制曲线的格式字符串,可选。
由颜色字符、风格字符和标记字符组成
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

**kwargs: 第二组或更多(x, y, format_string)

color: 控制颜色,color = ‘green’
linestyle: 线条风格,linestyle =--’或 ‘dashed’
linewidth: 线条宽度,linewidth = 3
marker: 标记风格,marker = ‘o’
markerfacecolor: 标记颜色,markerfacecolor = ‘blue’
markersize: 标记尺寸,markersize = 20

在这里插入图片描述
在这里插入图片描述

3.2 plt.title()

fontsize:设置字体大小
fontproperties:设置字体格式
fontweight:设置字体粗细 (‘light’, ‘normal’, ‘medium’, ‘semibold’, ‘bold’)
fontstyle:设置字体类型(‘normal’, ‘italic’ , ‘oblique’)
rotation:旋转角度 vertical, horizontal或数字
backgroundcolor:标题背景颜色

在这里插入图片描述
在这里插入图片描述

import matplotlib.pyplot as plt

fig = plt.figure(figsize = (8,6), dpi = 50)

x = range(0,10,2)
y = [2,1,3,5,4]

plt.plot(x,y,color = 'g', linestyle = '-.',linewidth = 3,
        marker = 'h', markerfacecolor = 'c', markersize = 15)

plt.xticks(x)
plt.yticks(range(min(y),max(y)+1))

plt.title('示例', fontproperties = 'Kaiti', fontsize = 25, backgroundcolor = 'c')

plt.show()

在这里插入图片描述

3.3 plt.xlabel()/ylabel()

fontsize:设置字体大小
fontproperties:设置字体格式
rotation:旋转角度 vertical, horizontal或数字
backgroundcolor:背景颜色
import matplotlib.pyplot as plt

fig = plt.figure(figsize = (8,6), dpi = 50)

x = range(0,10,2)
y = [2,1,3,5,4]

plt.plot(x,y,color = 'g', linestyle = '-.',linewidth = 3,
        marker = 'h', markerfacecolor = 'c', markersize = 15)

plt.xticks(x)
plt.yticks(range(min(y),max(y)+1))

plt.title('示例', fontproperties = 'Kaiti', fontsize = 25)
plt.xlabel('X轴', fontproperties = 'Kaiti', fontsize = 20)
plt.ylabel('Y轴', fontproperties = 'Kaiti', fontsize = 20)
plt.show()

在这里插入图片描述

3.4 plt.legend()

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.5 pyplot的中文显示

3.5.1 第一种方法

pyplot并不默认支持中文显示,需要rcParams修改字体实现。
在这里插入图片描述
在这里插入图片描述

rcParams的属性
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.5.2 第二种方法

在有中文输出的地方,增加一个属性:fontproperties
在这里插入图片描述
在这里插入图片描述

3.6 pyplot的文本显示

文本显示函数
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
plt.annotate(s, xy=arrow_crd, xytext=text_crd, arrowprops=dict)
在这里插入图片描述
在这里插入图片描述

3.7 pyplot的子绘图区域

在这里插入图片描述

plt.subplot2grid()
plt.subplot2grid(GridSpec, CurSpec, colspan = 1, rowspan = 1)

理念:设定网格,选中网格,确定选中行列区域数量,编号从0开始。

plt.subplot2grid((3,3),(1,0),colspan=2)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4. pyplot的基础图表函数

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

5. numpy和matplotlib绘图综合应用

在这里插入图片描述
在这里插入图片描述

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

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

相关文章

C#上位机系列(2)—常用控件的介绍:文本标签,按键,输入框

本文是讲解C#.net平台的Winform框架下的第二个内容,手把手介绍项目的创建方式以及一些写软件时常用的功能,讲解从零开始的每一个步骤。 本次介绍三个最常用控件的使用 1.文本控件Label 功能:显示一个文本 2.按键控件Button 功能&#x…

考研 | 组成原理【第二章】数据的表示和运算

考研 | 组成原理【第二章】数据的表示和运算 文章目录考研 | 组成原理【第二章】数据的表示和运算I. 数制与编码a. 进位计数制及其相互转换b. BCD码1. 8421码2. 余3码3. 2421码c. 无符号整数表示和运算1. 表示2. 运算d. 带符号整数的表示和运算1. 原码2. 反码3. 补码4. 移码5. …

多肽标签VSV-G Tag、YTDIEMNRLGK

VSV-G肽是一种源自水泡性口腔炎病毒糖蛋白的11个氨基酸的肽。编号: 191225 中文名称: 多肽标签VSV-G Tag 英文名: VSV-G Tag 英文同义词: VSV tag 单字母: H2N-YTDIEMNRLGK-OH 三字母: H2N-Tyr-Thr-Asp-Ile-Glu-Met-Asn-Arg-Leu-Gly-Lys-COOH 氨基酸个数: 11 分子式: C57H94N16…

【HMS Core】ScanPlus和Push推送库出现冲突该如何解决?

1、问题描述 项目中之前是同时集成了华为统一扫码服务SDK和华为推送SDK,这两天升级华为推送版本至6.3.0.304时发现这两个库出现了冲突, 这两个库的依赖版本情况如下所示: implementation com.huawei.hms:scanplus:2.7.0.301 implementatio…

[附源码]java毕业设计小型医院药品及门诊管理

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

《垃圾回收算法手册 自动内存管理的艺术》——内存分配(笔记)

文章目录七、内存分配7.1 顺序分配7.2 空闲链表分配7.2.1 首次适应分配7.2.2 循环首次适应分配7.2.3 最佳适应分配7.2.4空闲链表分配的加速快速适应分配(fast-fit allocation)位图适应分配(bitmapped-fits allocation)7.3 内存碎片化7.4 分区适应分配7.4.1 内存碎片7.4.2 空间大…

LINUX SECCOMP模块介绍

SECCOMP介绍 Seccomp是 "secure computing" 的 缩写。Linux内核2.6.12版本(2005年3月8日)引入。是linux一个安全模块,用于限制程序系统调用;当时如果使用了SECCOMP只允许4个系统调用: read,wri…

Flutter组件--Padding和AnimatedPadding

示意图: Padding介绍 在应用程序中有许多widget 时,这个时候画面常常会变得很拥挤,这个时候如果想要在widget之间来保留一些间距,那就用 Padding 为什么使用 Padding 而不使用 Container.padding 属性的 Container? Container 是将许多更…

RabbitMQ-08 不公平分发与预取值

不公平分发 我们之前演示的所有示例都遵循轮询分发,也就是多个消费者时交替消费队列消息。可以想一下我们之前的一个例子。Worker02处理消息只需要1s但是Worker03处理一个消息却用30s的情况。那么这个时候我们就要使用到不公平分发。简而言之就是能者多劳。 需要在消…

亚马逊刷单测评的正确方法是什么样的?

做亚马逊刷单测评时想要有效果,测评方法很重要,不能直接通过链接进行下单,这样显的很不真实,如果是要找人帮忙测评,可以通过以下方式进行: 1、通过关键词搜索进入 选择自己想刷的关键词,直接搜…

物联网安全年报小结

小结 不仅仅是 LockerGoga,其他勒索软件也对工业系统造成了重大损失,如全球第二大听力集团 Demant 被勒索造成损失达 9500 万美元 [21];世界上最大的飞机零部件供给商之一 ASCO,因其位于 比利时扎芬特姆的工厂系统遭勒索病毒传染…

目标检测算法——YOLOv5/YOLOv7改进之结合​RepVGG(速度飙升)

>>>深度学习Tricks&#xff0c;第一时间送达<<< 目录 RepVGG——极简架构&#xff0c;SOTA性能&#xff01;&#xff01;&#xff01; &#xff08;一&#xff09;前沿介绍 1.RepVGGBlock模块 2.相关实验结果 &#xff08;二&#xff09;YOLOv5/YOLOv7改…

Alibaba官方上线,SpringBoot+SpringCloud全彩指南(第五版)

Alibaba作为国内一线互联网大厂&#xff0c;其中springcloudAlibaba更是阿里微服务最具代表性的技术之一&#xff0c;很多人只知道springcloudAlibaba其实面向微服务技术基本上都有的下面就给大家推荐一份Alibaba官网最新版&#xff1a;SpringBootSpringCloud微服务全栈开发小册…

基于STM32G431嵌入式学习笔记——三、KEY按键入门

一、按键在CubeXM里的配置 可以打开先前配置过LED的CubeMX&#xff0c;在其基础上进行按键的配置。 个人建议在这里先将原环境拷贝 更改副本文件夹名为LED_KEY_LCD 打开文件夹中的.ioc文件进行配置 在配置之前&#xff0c;我们先查阅产品手册了解按键的电路图&#xff0c;以…

07-Nginx 日志管理及自动切割

Nginx 日志管理及自动切割 对于程序员、运维来说&#xff0c;日志非常得重要。通过日志可以查看到很多请求访问信息&#xff0c;及异常信息。Nginx 也提供了对日志的强大支持。 日志管理范围 首先&#xff0c;下面要讲的这些日志相关属性可以配置在任意模块。在不同的模块&…

如果我在初用tomcat时,是看到这篇tomcat架构解析,是不是就不会被说菜鸡了!

写在前面 tomcat作为一个中间件&#xff0c;相信绝大多数java程序员&#xff0c;多多少少都应该用到过吧。尤其是在springboot还未流行的时候&#xff0c;本地环境&#xff0c;没少跑tomcat服务吧&#xff1f; 我们一般都是直接使用&#xff0c;将我们的web服务&#xff0c;直…

疫情下跨越一万公里的友情:熊超与飒特电子哨兵的故事

在熊超&#xff08;化名&#xff09;家中&#xff0c;有一面照片墙&#xff0c;上面贴满了他在非洲工作十多年的剪影。这些照片整齐地摆放成一个心形&#xff0c;挂在客厅最显眼的位置。每当亲戚朋友来访&#xff0c;熊超都会为他们讲起自己援助非洲十余年发生的故事。 十多年…

【无标题】EXCEL实现刷题

实现的思路&#xff1a; 导入题库word文件导入到excel–>绑定随机事件选定考题。 word题库导入Excel表的代码如下&#xff1a; 整理题库结构&#xff08;添加题号&#xff0c;分离答案&#xff09; Public Sub numAdd() Dim rng As Range, RNG1 As Range With Sheet1 .[b1]…

linuex服务器中如何安装mysql数据库(一次性完成,包含远程连接)

大家好。我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂 今天给大家介绍一下&#xff0c;如何在新服务器中安装mysql数据库&#xff0c;总是捣鼓服务器&#xff0c;每次都去网上查&#xff0c;次次都不一样&#xff0c;浪费好多时间&#xff0c;这次自己记录…

Imperceptible Backdoor Attack: From Input Space to Feature Representation 笔记

1. 论文信息 论文名称Imperceptible Backdoor Attack: From Input Space to Feature Representation作者Nan Zhong&#xff08;Fudan University&#xff09;会议/出版社IJCAI 2022pdf&#x1f4c4;在线pdf 本地pdf代码&#x1f4bb;pytorch概要文中提出了一种难以察觉的后门…