Matplotlib数据可视化:三大容器对象与常用设置

上一篇说到,matplotlib中所有画图元素(artist)分为两类:基本型和容器型。容器型元素包括三种:figure、axes、axis。一次画图的必经流程就是先创建好figure实例,接着由figure去创建一个或者多个axes,然后通过axes实例调用各种方法来添加各种基本型元素,最后通过axes实例本身的各种方法亦或者通过axes获取axis实例实现对各种元素的细节操控。本篇博客继续上一节的内容,展开介绍三大容器元素创建即通过三大容器可以完成的常用设置。

在上文中我们一直提到的figure指的是Figure类的实例化对象,当然我们一般不会直接去实例化Figure类,因为这样创建的Figure实例对象不能纳入序列中共同管理。matplotlib中提供了多种方法创建figure,其中属pyplot模块中的figure()方法最常用也最方便,下面我们来说说这个方法。figure方法参数如下:

在jupyter编辑器中,空白的figure是不会显示的,所以必须在figure中至少添加一个axes。

创建figure时的各个参数基本都可以通过figure实例对象中对应的对应的set方法进行修改,例如set_facecolor()用来设置前景色,set_size_inches()用来设置大小等。设置前景色:

axes可以认为是figure这张画图上的子图,因为子图上一般都是坐标图,所以我更愿意理解为轴域或者坐标系。

一个figure可以有多个axes,无论是pyplot模块还是figure实例内都定义有多种创建axes的方法。(1)plt.axes()plt.axes()是指pyplot模块中的axes()方法,该方法会在当前激活的figure中创建一个axes,并使创建好的axes处于激活状态。当传入的第一个位置参数为空时,该方法会创建一个占满整个figure的axes;通常我们可以传入一个tuple参数(left,botton,width,height)作为第一个位置参数,tuple中四个元素分别表示与figure左边框比例距离,边框宽度占figure宽度的比例,宽度比例,高度占figure高度的比例。通过这种方式添加axes时,matplotlib会自动创建一个axes,然后将创建好的axes按照给定的位置和size添加到figure中,最后返回一个axes的引用。

注意,如果在相同区域添加axes,后面添加的axes会把前面添加的axes覆盖。

(2)figure.add_axes()figure.add_axes()方法的作用是将一个axes添加到figure中,这一方法可以传入一个已创建好的axes作为第一个参数,add_axes会将传入的axes添加到figure中,但这种情况使用不多。在大多数情况下,我们会如同上述在plt.axes()方法中那样传递一个tuple参数(left,botton,width,height)作为第一个位置参数。同样,如果在相同区域添加axes,后面添加的axes会把前面添加的axes覆盖。

(3)plt.subplot与plt.subplots()

plt.subplot和plt.subplots()是在pyplot模块中定义的两个方法,两个方法都是将figure划分为多行多列的网格,然后添加axes,但功能和用法却有些许不同。

plt.subplot主要包括三个参数(nrows,ncols,index),分别表示行数、列数和索引,该方法会根据指定的行列数对figure划分为网格,让后在指定索引的网格中创建axes,并返回该axes的引用。索引是从1开始从左往右,从上到下递增,例如plt.subplot(2,2,4)表示将figure划分为两行两列的4个网格,并在第4个子网格中创建一个axes然后返回。注意,每一次调用plt.subplot()方法只会在指定索引的子网格中创建axes,而不是在所有子网格中都创建axes,如果需要在多个子网格中创建axes,那么就需要多次调用plt.subplot()指定不同的索引。另外,如果nrows,ncols,index三个参数都小于10,可以将这三个参数合并成一个3位整数来写,例如plt.subplot(2,2,4)与plt.subplot(224)是完全等效的。

与plt.subplot()不同的是,plt.subplots()会重新创建一个figure,然后将创建好的figure按照指定的行列数划分为网格,并在每一个子网格中各创建一个axes,最终同时返回figure和所有子网格中axes组成的numpy数组中。

(4)figure.add_subplot()与figure.subplots()figure.add_subplot与上文中介绍过的plt.subplot()无论是功能还是使用方法上都是几乎一样的,唯一区别就是plt.subplot()的目标是在当前激活的figure,而figure.add_subplot()是调用add_subplot()方法的figure。

figure.subplots()的功能、用法又与上文中介绍过的plt.subplots()很相似,区别在于figure.subplots()不会重新创建一个figure,而是对当前的figure进行划分网格并在每一个网格中都创建一个axes。

axes是matplotlib作图中众多元素的核心,可以说,大多数的设置都可以通过axes来完成。

axis在matplotlib中是一种类似于坐标轴的概念,负责处理轴标签、刻度线、刻度标签、网格线的绘制。在大多数情况下,axis我们手动创建,在创建axes时会一并创建axis,通过axes的实例对象即可调用axes内的axis实例。通过axis实例,我们可以实现更加多样化、细微的图标操作。通过axes实例可以调用get_xaxis()方法获取axis实例,然后实现对label等对象的操作。

本文主要介绍matplotlib图表的三种容器元素:figure、axes、axis。figure是最底层的容器,相当于一张画布,在画布上,我们可以画多个axes,axes就是figure上的子图,每个axes都是一张独立的图表,每个axes包含多个axis,通过axis我们可以实现对图表更多细节上的操作。理解了matplotlib图表三个层次的布局,我们就可以通过figure->axes-->axis的流程完成图表在宏观层面的创建。在后续的博客中,将会继续介绍对图表更多更加细节化的设置以及如何画各种不同的统计图表。

THE END
1.Streamlit开发手册/st.pyplot显示matplotlib图表streamlit的pyplot方法显示指定的matplotlib.pyplot图表。 方法原型 streamlit.pyplot(fig=None,**kwargs) 参数: fig:要使用的绘制面板,当为None时,使用整个绘图区域 **kwargs :传入Matplotlib的savefig函数的关键字参数 示例代码 >>>importmatplotlib.pyplotasplt>>>importnumpyasnp>>>arr=np.random.normal(1,1,siz...http://cw.hubwiz.com/card/c/streamlit-manual/1/6/12/
2.深入了解Figure的结构与层次当我们使用Matplotlib进行数据可视化时,了解图形的结构与层次是十分重要的。在Matplotlib中,Figure是整个图形的最顶层容器,它包含了多个子图(Axes),而每个子图则包含了坐标轴(Axis)、标题、图例等组件。本文将深入探讨Matplotlib中Figure的结构与层次,以帮助读者更好地理解和使用Matplotlib进行数据可视化。 https://developer.aliyun.com/article/1456816
3.pyplot图像组件守护式等待ax子对象的组件内容 Title 图表标题 plt.title() Axis 坐标范围,x轴,y轴 plt.axis() label 坐标轴标注 plt.xlabel() plt.ylabel() Tick 刻度线,Tick Label 刻度标注 plt.xticks() plt.yticks() 各组件关系为: importmatplotlib.pyplot as plt#import matplotlib #载入matplotlib完整库#matplotlib.rcParams['...https://www.cnblogs.com/yoyo1216/p/10131679.html
4.北京师范大学研究生院(九)第九讲 数据可视化之Matplotlib 学时(1 + 1) 主要内容: 1. 利用Matplotlib实现直方图、散点图、等高线图等各类图的绘制; 2. 利用Matplotlib实现动画的制作; 教学要求:掌握Matplotlib基本绘图方法,以及各种图形的绘制方法。 编程实践:利用Matplotlib对前面课程中数据处理结果进行可视化绘图。 http://ss.graduate.bnu.edu.cn/py/yzkc/detail?id=6267af01-f562-43f3-8c1e-f1dd062a233d
5.Matplotlib10. Matplotlib的历史 Matplotlib由John D. Hunter创建,第一个版本发布于2003年。它受到了MATLAB图形系统的强烈影响,旨在提供类似MATLAB的图形功能。 11. Matplotlib架构 Matplotlib由几个主要的组件构成: pyplot:提供了类似MATLAB的交互式环境,可以非常方便地绘图。 https://www.jianshu.com/p/4a95b74be693
6.matplotlib安装包下载压缩包中包含matplotlib绘图所需的各种组件。有matplotlib numpy six pysparsing dateutil。要求:python3.4,64位 上传者:u012076104时间:2014-09-27 matplotlib-3.3.4-cp38-cp38-win_amd64.whl 该资源为matplotlib-3.3.4-cp38-cp38-win_amd64.whl,欢迎下载使用哦! https://www.iteye.com/resource/u011954464-9904332
7.数据可视化系统开发课程入门指南可视化组件是数据可视化系统的核心部分,常见的组件包括图表(如折线图、柱状图、散点图)、地图、仪表盘等。这些组件可以组合成复杂的可视化界面,为用户提供丰富的信息展示和交互功能。 交互设计示例 添加用户交互以响应点击事件,使用matplotlib和mpld3库实现: import matplotlib.pyplot as plt import mpld3 # 数据 catego...https://www.imooc.com/article/359422
1.matplotlib知识matplotlib使用的后端(如backend_interagg)可能与当前环境不匹配或未正确加载。 在代码中显式设置一个兼容的后端,例如TkAgg、Qt5Agg等 importmatplotlib matplotlib.use('TkAgg')# 或 'Qt5Agg' importmatplotlib.pyplotasplt 功能介绍 知识点 一、基础用法 ...https://blog.csdn.net/wjm041006/article/details/143997650
2.pythontrimesh如何加载mtl材质文件Matplotlib是Python数据可视化库中的泰斗,它已经成为python中公认的数据可视化工具,我们所熟知的pandas和seaborn的绘图接口其实也是基于matplotlib所作的高级封装。 为了对matplotlib有更好的理解,让我们从一些最基本的概念开始认识它,再逐渐过渡到一些高级技巧中。 https://blog.51cto.com/u_16213583/12692231
3.matplotlib.axis—Matplotlib3.9.3documentationclass matplotlib.axis.XAxis(*args, **kwargs)[source] Parameters: axesAxes The Axes to which the created Axis belongs. pickradiusfloat The acceptance radius for containment tests. See also Axis.contains. clearbool, default: True Whether to clear the Axis on creation. This is not required, e...https://matplotlib.org/stable/api/axis_api.html
4.Python使用Slider组件实现调整曲线参数功能示例python这篇文章主要介绍了Python使用Slider组件实现调整曲线参数功能,结合实例形式分析了Python使用matplotlib与Slider组件进行图形绘制相关操作技巧,需要的朋友可以参考下本文实例讲述了Python使用Slider组件实现调整曲线参数功能。分享给大家供大家参考,具体如下:一 代码1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18...https://www.jb51.net/article/169466.htm
5.Matplotlib中的titles(标题)labels(标签)和legends(图例...Matplotlib是一个Python中常用的绘图库,用于创建各种类型的图表。在Matplotlib中,你可以使用titles(标题)、labels(标签)和legends(图例)来增强你的图表。本文讨论Python的Matplotlib绘图库中可用的不同标记选项。 Figure, subplots 和axes列表 在Matplotlib中,Figure是整个图形窗口,它可以包含一个或多个子图(Axes)。Axes是...https://cloud.tencent.com/developer/article/2370266
6.Matplotlibpythonshow()立即返回Dovov编程网) ion()和ioff()应该做同样的事情,但是上面是在matplotlib的层次上,而不仅仅是pyplot或pylab。 这对我来说,虽然我(后来)分别导入pyplot,而不是再次调用matplotlib。 我在想plt.ion()只对pyplot有影响,而不是matplotlib的其他组件,在使用pyplot时可能不会涉及到。 这个方法适用于Windows 7,在两个系统(64位,都...https://www.dovov.com/matplotlib-python-show.html
7.Matplotlib:Pythonplotting—Matplotlib3.3.3文档matplotlib-usersfor usage questions matplotlib-develfor development matplotlib-announcefor project announcements 工具程序? 带有多个附加组件的Matplotlib船toolkits,包括使用mplot3d,轴辅助对象axes_grid1和轴助手axisartist. 第三方软件包? 大量third party packages扩展和构建matplotlib功能,包括几个更高级的绘图接口...https://www.osgeo.cn/matplotlib/
8.第二回:艺术画笔见乾坤—fantasticmatplotlib.artist.Artist 代表了具体的图表组件,即调用了Renderer的接口在Canvas上作图。 前两者处理程序和计算机的底层交互的事项,第三项Artist就是具体的调用接口来做出我们想要的图,比如图形、文本、线条的设定。所以通常来说,我们95%的时间,都是用来和matplotlib.artist.Artist类打交道的。 2. Artist的分类? Art...https://datawhalechina.github.io/fantastic-matplotlib/%E7%AC%AC%E4%BA%8C%E5%9B%9E%EF%BC%9A%E8%89%BA%E6%9C%AF%E7%94%BB%E7%AC%94%E8%A7%81%E4%B9%BE%E5%9D%A4/index.html
9.Matplotlib中如何调整图例位置:全面指南极客教程在深入探讨如何调整图例位置之前,我们先来了解一下图例的基本概念。图例是图表中用于解释各种元素含义的一个组件,通常包含了线条、标记和颜色等信息,帮助读者理解图表中的数据表示。 在Matplotlib中,我们可以使用legend()方法来添加图例。默认情况下,Matplotlib会尝试将图例放置在一个”最佳”位置,即不会遮挡主要的数据内...https://geek-docs.com/matplotlib/matplotlib-ask-answer/change-the-legend-position-in-matplotlib_z1.html
10.Matplotlib可视化最有价值的50个图表(附完整Python源代码)机器...运行本文代码,除了安装 matplotlib 和 seaborn 可视化库外,还需要安装其他的一些辅助可视化库,已在代码部分作标注,具体内容请查看下面文章内容。 在数据分析和可视化中最有用的 50 个 Matplotlib 图表。 这些图表列表允许您使用 python 的 matplotlib 和 seaborn 库选择要显示的可视化对象。 介绍 这些图表根据可视化目标...https://www.jiqizhixin.com/articles/2019-01-15-11