视觉化数据的艺术:掌握Matplotlib基础绘图

news2024/11/18 8:55:51

Matplotlib基础绘图

文章目录

  • Matplotlib基础绘图
    • 1.基础流程
    • 2.绘图设置
    • 3.动态rc参数
    • 4.pyplot的基础图表函数
  • 安利


1.基础流程

1.导入模块。绘图之前,需要先导入包含相应函数的模块。
2.创建画布与创建子图。第一部分主要是构建出一张空白的画布,如果需要同时展示几个图形,可将画布划分为多个部分。然后使用对象方法来完成其余的工作,示例如下。

plt.figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=True)

num:图像编号(数字)或名称(字符串),可以通过这个参数来激活不同的画布
figsize:画布的宽和高,单位:英寸
dpi:指定绘图对象的分辨率,每英寸包含多少个像素,像素越大,画布越大,默认值为80
facecolor:背景颜色
edgecolor:边框颜色
frameon:是否显示边框,True:绘制边框(默认值)

3.添加画布内容。第二部分是绘图的主体部分。一个图形可以包含任意数量的轴,但通常至少有一个,每个轴都可以设置一个轴标签。常见的是二维坐标轴,即包含 X 轴(横轴)和 Y 轴(纵轴), 轴上可以设置刻度标签。使用 Matplotlib 模块画坐标图时, 往往需要对坐标轴设置很多参数, 这些参数包括横纵 坐标轴范围、坐标轴刻度大小、坐标轴名称等
添加标题、坐标轴名称等步骤与绘制图形是并列的,没有先后顺序,可以先绘制图形,也可以先添加各类标签,但是添加图例一定要在绘制图形之后。pyplot模块中添加各类标签和图例的函数如下表所示。
在这里插入图片描述
4.图形保存与展示。绘制图形之后,可使用matplotlib.pyplot.savefig()函数保存图片到指定路径,使用matplotlib.pyplot.show()函数展示图形。


提示:以下是本篇文章正文内容,下面案例可供参考

2.绘图设置

最基本的绘图函数是绘制曲线函数plot。
plot(y)%绘制以y为纵坐标的二维曲线
plot(x,y)%绘制以x为横坐标y为纵坐标的二维曲线
plot(x1,y1,x2,y2…) %在同一窗口绘制多条二维曲线
说明:x和y可以是实数向量或矩阵,也可以是复数向量或矩阵。

颜色设置:(color)
在这里插入图片描述
线条样式:(linestyle)
在这里插入图片描述
标记样式:(marker)
在这里插入图片描述

设置坐标轴(x轴:xlabel,y轴:ylabel)
x轴语法:

matplotlib.pyplot.xlabel(xlabel, fontdict=None,labelpad=None,**kwargs)

xlabel:标签文本。并且包含字符串值
y轴语法:

matplotlib.pyplot.ylabel(ylabel, fontdict=None,labelpad=None,**kwargs)

ylabel:标签文本。并且包含字符串值

中文乱码问题的解决方法:

matplotlib.pyplot.rcParams['font.sans-serif'] = ['SimHei']

负号不显示问题的解决方法:

plt.rcParams['axes.unicode_minus'] = False

坐标轴刻度(x轴:xticks,y轴:yticks)

x轴语法:

matplotlib.pyplot.xticks(locs,[labels],**kwargs)

y轴语法:

matplotlib.pyplot.yticks(locs,[labels],**kwargs)

坐标轴范围(x轴:xlim,y轴:ylim)

matplotlib.pyplot.xlim(1,10) 
matplotlib.pyplot.ylim(1,10)

网格线(grid)

matplotlib.pyplot.grid()

添加文本标签(text)

matplotlib.pyplot.text(x,y,s,fontdict=None,withdash=False,**kwargs)

设置标题(title)

matplotlib.pyplot.title(label,fontdict=None,loc='center',pad=None,**kwargs)

设置图例(legend)

matplotlib.pyplot.legend(*args, **kwargs)

调整图表与画布边缘间距(subplots_adjust)

matplotlib.pyplot.subplots_adjust(left=None,bottom=None,right=None,top=None,wspace=None,hspace=None)

left,bottom,right,top:调整上下左右的空白,left和bottom值越小,空白越小,right和top,值越大,空白越小(画布是从左下角开始,取值0~1)

x,y轴刻度线显示方向语法:

matplotlib.pyplot.rcParams['xtick.direction'] = 'in' matplotlib.pyplot.rcParams['ytick.direction'] = 'in'

参数说明:

direction:将刻度置于坐标轴内、轴外,或同时置于两者 ‘,{‘in’, ‘out’, ‘inout’}可选,默认 ‘out’

3.动态rc参数

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

4.pyplot的基础图表函数

1.折线图 plot()
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2.散点图 scatter()
在这里插入图片描述
在这里插入图片描述
3.直方图 hist()
在这里插入图片描述
在这里插入图片描述
4.条形图 bar()
在这里插入图片描述
在这里插入图片描述
5.饼图 pie()
在这里插入图片描述
在这里插入图片描述
6.面积图 stackplot()

matplotlib.pyplot.stackplot(x,,*args,data=None,**kwags)

7.热力图 imshow()

matplotlib.pyplot.imshow(X, cmap=None, norm=None, aspect=None, interpolation=None, alpha=None, vmin=None, vmax=None, origin=None, extent=None, shape=None, filternorm=True, filterrad=4.0, imlim=None, resample=None, url=None, *, data=None, **kwargs)

X: 要显示的图像或数组。
cmap: 颜色映射,默认为None。可以是特定颜色映射的字符串名称,也可以是matplotlib.colors.Colormap 实例。
norm:用于将数据值标准化到 0-1 范围内的 matplotlib.colors.Normalize 实例,默认为None
aspect:表示图像的纵横比,如 ‘equal’, ‘auto’ 或一个数字,默认为None
interpolation: 图像显示时使用的插值算法,默认为None。常用的插值方法有 ‘nearest’,‘bilinear’, ‘bicubic’, 'spline16’ 等。
alpha:(0-1 之间的数值)图像的透明度,默认为 None

8.箱线图 boxplot()
在这里插入图片描述
在这里插入图片描述

计算方法:
1).数据集:7,36,15,39,41,40
2).按从小到大的顺序对数据集进行排列:7,15,36,39,40,41
3)确定四分位数索引位置的根据公式:1+(n-1)*数据的百分比分位点,在根据索引位置确定索引所对应的数据值(n是数据集的数量 n=6)·
Q1_position=1+(6-1)0.25=2.25 (Q1在第二个数和第三个数之间)
Q1_value=15+(36-15)
(2.25-2)=20.25·
Q2_position=1+(6-1)0.5=3.5 (Q2在第三个数和第四个数之间)
·Q2_value=36+(39-36)
(3.5-3)=37.5
·Q3_position=1+(6-1)0.75=4.75 (Q3在第四个数和第五个数之间)·
Q3_value=39+(40-39)
(4.75-4)=39.75·
上限=39.75+(39.75-20.25)1.5=69·
下限=20.25-(39.75-20.25)1.5=-9
极端异常值:
·极端上限:上限=Q3+3
(Q3-Q1)·
极端下限:下限=Q1-3
(Q3-Q1)·
极端异常值的判定标准:当变量的数据值大于极端上限或小于极端下限时,判定为极端异常值

9.三维柱形图 axes3d.bar()

mpl_toolkits.mplot3d.axes3d.bar(left, height, zs=0, zdir=‘z’, *args, **kwargs) 

参数说明:
left:x轴数据集
height:柱子的高度
zs:z轴的数据集
zdir:可选参数{‘x’, ‘y’, ‘z’}, 默认: ‘z’

绘制多个子图表
使用matplotlib.pyplot.subplots 函数

matplotlib.pyplot.subplots(nrows=1, ncols=1, *, sharex=False, sharey=False, squeeze=True,width_ratios=None, height_ratios=None,subplot_kw=None, gridspec_kw=None, **fig_kw)

参数说明:
nrows,ncols:将画布分成几行几列
sharex,sharey:表示坐标轴的属性是否相同
subplot_kw:把字典的关键字传递给add_subplot来创建每个子图
gridspec_kw:把字典的关键字传递给GridSpec构造函数创建网格区域
fig_kw:把所有详细的关键字参数传给figure


安利

Seaborn库:Seaborn属于Matplotlib的一个高级接口,使得作图更加容易。在多数情况下使用Seaborn能做出很具吸引力的图,而使用Matplotlib可以制作具有更多特色的图。应该把Seaborn视为Matplotlib的补充,而不是替代物
Seaborn官网
在这里插入图片描述

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

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

相关文章

Elastic 网络爬虫:为你的网站添加搜索功能

作者:来自 Elastic Lionel Palacin 为了演示如何使用 Elastic 网络爬虫,我们将以一个具体的网站为例,讲解如何在该网站上添加搜索功能。我们将探讨发现网站的方法,并利用 Elastic 网络爬虫提供的功能,以最佳方式准备待…

springboot+ssm基于Java的小型企业银行账目管理系统代码Lw

本毕业设计课题要求学生基于软件工程方法,根据课题的需求,给出小型企业银行账目管理系统概要设计、详细设计、数据库的设计以及系统实现和测试,并撰写规范的毕业设计说明书。该系统的主要模块有:系统管理、帐目管理、查询统计、用…

如何创建响应式HTML电子邮件模板

在这个适合初学者的指南中,你将学习如何创建一个响应式电子邮件模板。你将跟随逐步说明以及代码片段设计一个在任何设备上都看起来很棒的电子邮件模板。 这个项目非常适合渴望掌握电子邮件设计基础的新手! (本文视频讲解:java56…

抖店严查违规店铺!老商家下台,新手正是入驻时机!

哈喽~我是电商月月 抖店一直在严查违规店铺,很多新手都在犹豫不前,不知道要不要去做抖音小店 以为是抖音平台在“想方设法”克扣商家钱财,开店都是坑? 要这样想,那就大错特错了! 抖店整改,把…

你的mongodb客户端是哪个呢?

MongoDB 是一种流行的文档数据库,它可以支持多种场景和应用。有很多客户端工具可以用来管理和操作 MongoDB,以下是一些常用的工具,以及它们的介绍: 一、MongoDB Shell MongoDB Shell 是连接(和使用)MongoD…

每日一题:计数质数

给定整数 n ,返回 所有小于非负整数 n 的质数的数量 。 示例 1: 输入:n 10 输出:4 解释:小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。示例 2: 输入:n 0 输出:0示例 3&#…

NVIDIA智算中心“产品”上市,AI工业革命的iPhone时刻

GTC 2024落下帷幕了,但这个大会的信息仍在AI产业和经济中发酵。咨询机构WIKIBON认为,GTC 2024在整个科技史中的意义超过了当年史蒂夫乔布斯的iPod和iPhone发布。在AI将永久改变人类的共识下,GTC 2024在广度、愿景、生态系统等方面都有着深远影…

危险场景智能运维巡检系统

在石油、天然气、煤炭和化工等行业,特别是在I/IIC级防爆区场景中,存在着诸如易燃、易爆、高温、有毒有害以及粉尘等危险因素。例如,油气转运站、催化裂化装置、煤化工甲醇车间以及制氢站等地点,都面临着这些潜在的危险。传统的人工…

如何使用ArcGIS Pro进行路径分析

路径分析是一种空间分析技术,用于确定两个或多个地点之间最佳路径或最短路径,这里为大家介绍一下在ArcGIS Pro中如何进行路径分析,希望能对你有所帮助。 数据来源 教程所使用的数据是从水经微图中下载的道路数据,除了道路数据&a…

交换基础配置--单臂路由

1、创建vlan 创建vlan10 创建vlan10和vlan20 创建vlan1到vlan9 vlan1可以不用创建,因为交换机的所有接口默认为vlan1 本实验只需要vlan10和vlan20,以上只是介绍创建vlan的方法。 查看创建的vlan: sw2同理。接着将需要划分vlan的接口划入…

linux基本命令2

一、Whereis是查找工具中速度最快的一个,但是whereis查找的范围有限, whereis只能查找2进制程序, 使用whereis查找 ls -b:查找2进制程序 -m:查找文档 -s:查找码源 二、which命令是查找工具中速度最快命令…

3D模型查看器开发实战【WebGL】

本文介绍如何从头开发一个包含3D 模型查看器的页面 - 尽管它非常简单,但你将学习的步骤也应该有助于构建其他类型的 Web 应用程序。 在自己的网站或博客里展示3D模型更简单的方式是使用NSDT 3DConvert提供的在线服务,无需任何开发工作,5分钟…

access多表关联提示:语法错误(操作符丢失)在查询表达式中

在access数据库中执行多表关联时提示了一个错误 select * from Patient a inner join BioMain b on a.BioIDb.BioID inner join BioResult c on b.BioIDc.BioID where len(a.PatientID)>12 and b.AddTime>#2024-04-17 05:53:23# and b.AddTime<#2024-04-17 17:53:23#…

基于Python 实现数据可视化大屏

数据本身是冰冷的数字&#xff0c;通过选择合适的图形或者图表来进行展示表达&#xff0c;使得传递给使用者的感受更加直观、更容易获得其中的价值。 数据可视化将技术与艺术完美结合&#xff0c;借助图形化的手段&#xff0c;清晰有效地传达与沟通信息。一方面&#xff0c;数…

Unity地形关联出错的解决办法以及地形深度拷贝

问题 最近发现unity地形系统的一个bug&#xff0c;导入的场景地形数据关联错乱了&#xff0c;关联到别的场景的地形数据了&#xff0c;meta替换了也没用&#xff0c;不清楚它具体是怎么关联的。 看下面的案例&#xff1a; 可以看到正常这个场景的地形数据应该关联的是Scene_E…

【GitBlit】Windows搭建Git服务器详细教程

前言 如果公司或个人想在 Windows 环境下搭建私有的 Git 服务器&#xff0c;那么这个开源的 GitBlit 是一个不错的选择。 Gitblit 是一个开源纯 Java 的用于管理、查看和服务 Git 存储库。它是一个小型的托管集中式存储库工具。支持 SSH、HTTP 和 GIT 协议&#xff0c;开箱即…

SpringBoot项目如何实现邮件发送

文章目录 1. 开启邮箱SMTP服务2. 导入pom依赖3. 在配置文件中添加邮箱配置3. 封装EmailTask类4. 写测试类 1. 开启邮箱SMTP服务 这里以163邮箱为例&#xff0c;点击设置——更多设置——POP3/SMTP/IMAP——开启服务 根据提示开启服务之后会得到一个授权码&#xff0c;只显示一…

线性代数基础3 行列式

行列式 行列式其实在机器学习中用的并不多&#xff0c;一个矩阵必须是方阵&#xff0c;才能计算它的行列式 行列式是把矩阵变成一个标量 import numpy as np A np.array([[1,3],[2,5]]) display(A) print(矩阵A的行列式是&#xff1a;\n,np.linalg.det(A))array([[1, 3],[2, …

04 JavaScript学习:输出

JavaScript 没有任何打印或者输出的函数。 JavaScript 显示数据 JavaScript 可以通过不同的方式来输出数据&#xff1a; 使用 window.alert() 弹出警告框。使用 document.write() 方法将内容写到 HTML 文档中。使用 innerHTML 写入到 HTML 元素。使用 console.log() 写入到浏…

用栈实现队列(力扣第232题)

#define _CRT_SECURE_NO_WARNINGS 1 #include "assert.h" #include "stdio.h" #include "stdbool.h" #include "stdlib.h" #include "string.h" #define N 10 typedef int STDataType; int data; //静态栈 //typedef struct…