
Matplotlib
文章平均质量分 62
Matplotlib
mighty13
这个作者很懒,什么都没留下…
展开
-
案例:利用Pandas按年月、考试科目汇总学生成绩并展示为并列柱状图
需求现有一批学生成绩,需要分析不同月份各科考试成绩波动情况,根据数据可知,即按照考试月份及考试科目对成绩汇总求平均成绩。问题解决根据数据源结构可知,主要难点如下:源数据中的日期列格式为年/月/日,为便于汇总,需转换为年/月格式。需要按日期、考试科目对分数进行分组并求均值。需要将分析结果以柱状图的形式进行展示关键中间结果读取数据data = pd.read_excel("考试分数.xlsx")df = data[['日期','考试科目','分数']]转换日期df["日期"]原创 2021-06-02 01:06:28 · 32868 阅读 · 0 评论 -
matplotlib之pyplot模块——绘制小提琴图violinplot()
当前有效matplotlib版本为:3.4.1。概述violinplot()函数的作用是绘制小提琴图。小提琴图和箱形图有点类似,它也可以显示四分位数(quartile)。不同于箱形图是通过长方形呈现的,以及绘图组件都对应实际的数据点,小提琴图集合了箱形图和密度图的特征,主要用来显示数据的分布状态,它能很好地表征了连续变量数据的分布情况。在外形上,因为所绘制的图形像一把把小提琴,故名“小提琴图”。小提琴图是用于观察多个数据分布情况的有效媒介,相比于箱形图,它在视觉上更令人愉悦。函数的签名为matplo原创 2021-06-01 01:27:03 · 40471 阅读 · 0 评论 -
matplotlib之pyplot模块——绘制箱线图(盒须图)boxplot()(二)演示外观参数、返回值
当前有效matplotlib版本为:3.4.1。概述boxplot()函数的作用是绘制箱线图(箱线图、盒须图、箱图)。箱线图是由一个箱体和一对箱须所组成的统计图形。箱体是由第一四分位数、中位数(第二四分位数)和第三四分位数所组成的。在箱须的末端之外的数值可以理解成离群值,因此,箱须是对一组数据范围的大致直观描述。函数的签名为matplotlib.pyplot.boxplot(x, notch=None, sym=None, vert=None, whis=None, positions=None,原创 2021-05-31 00:58:49 · 60928 阅读 · 4 评论 -
matplotlib之pyplot模块——绘制箱线图(盒须图)boxplot()(一)基本参数
当前有效matplotlib版本为:3.4.1。概述boxplot()函数的作用是绘制箱线图(箱线图、盒须图、箱图)。箱线图是由一个箱体和一对箱须所组成的统计图形。箱体是由第一四分位数、中位数(第二四分位数)和第三四分位数所组成的。在箱须的末端之外的数值可以理解成离群值,因此,箱须是对一组数据范围的大致直观描述。函数的签名为matplotlib.pyplot.boxplot(x, notch=None, sym=None, vert=None, whis=None, positions=None,原创 2021-05-30 01:55:51 · 41018 阅读 · 1 评论 -
matplotlib之pyplot模块——绘制茎叶图(杆图)stem()
当前有效matplotlib版本为:3.4.1。概述stem()函数的作用是绘制茎叶图(杆图、棉棒图、火柴杆图)。茎叶图根据基线(baseline)上的位置(locs)绘制从基线到杆头(heads)的茎线,并在茎头(heads)处放置标记。函数的签名为matplotlib.pyplot.stem(*args, linefmt=None, markerfmt=None, basefmt=None, bottom=0, label=None, use_line_collection=True, orie原创 2021-05-29 22:00:22 · 38752 阅读 · 8 评论 -
matplotlib之pyplot模块——绘制误差棒图 errorbar()
当前有效matplotlib版本为:3.4.1。概述error()函数的作用是在plot函数的基础上,在数据点位置绘制误差棒。函数的签名为matplotlib.pyplot.errorbar(x, y, yerr=None, xerr=None, fmt='', ecolor=None, elinewidth=None, capsize=None, barsabove=False, lolims=False, uplims=False, xlolims=False, xuplims=False, er原创 2021-05-28 01:13:28 · 51227 阅读 · 0 评论 -
matplotlib绘制尖峰栅格图eventplot()
当前有效matplotlib版本为:3.4.1。概述eventplot()函数的作用是在给定位置绘制长度相同的平行线。这种图形通常在神经科学中用于表示神经事件,通常称为尖峰栅格(spike raster)、点栅格( dot raster)或栅格图(raster plot)。也可用于显示多组离散事件的时间或位置。函数的签名为matplotlib.pyplot.eventplot(positions, orientation='horizontal', lineoffsets=1, linelength原创 2021-05-27 01:06:10 · 32931 阅读 · 0 评论 -
matplotlib绘制间断条形图broken_barh()
当前有效matplotlib版本为:3.4.1。概述间断条形图是在条形图的基础上绘制而成的,主要用来可视化定性数据的相同指标在时间维度上的指标值的变化情况,实现定性数据的相同指标的变化情况的有效直观比较。broken_barh()函数的作用是绘制间断条形图。该函数是BrokenBarHCollection类构造函数的一个快捷接口。函数的签名为matplotlib.pyplot.broken_barh(xranges, yrange, *, data=None, **kwargs)。函数的参数为:原创 2021-05-26 01:48:18 · 31658 阅读 · 0 评论 -
matplotlib之pyplot模块——向子图添加表格(table())
当前有效matplotlib版本为:3.4.1。概述table()函数的作用是向子图中添加表格。函数的签名为matplotlib.pyplot.table(cellText=None, cellColours=None, cellLoc='right', colWidths=None, rowLabels=None, rowColours=None, rowLoc='left', colLabels=None, colColours=None, colLoc='center', loc='bottom原创 2021-05-25 01:45:40 · 35173 阅读 · 1 评论 -
matplotlib之pyplot模块——向子图添加箭头(arrow())
当前有效matplotlib版本为:3.4.1。概述arrow()函数的作用是向子图中添加箭头。函数的签名为matplotlib.pyplot.arrow(x, y, dx, dy, **kwargs)。函数的参数为:x, y:箭头尾部的坐标。类型为浮点数。必备参数。dx, dy:箭头在xy方向的长度。类型为浮点数。必备参数。width:箭头尾部的宽度。类型为浮点数,默认值为0.001。head_width:完全箭头头部的宽度。类型为浮点数或None,默认值为3*width。head_l原创 2021-05-24 00:54:31 · 43590 阅读 · 0 评论 -
matplotlib之pyplot模块——递归查找对象(findobj())
概述findobj()函数的作用是递归查找对象中包含的子对象。函数的签名为matplotlib.pyplot.findobj(o=None, match=None, include_self=True)。函数的参数为:o:容器对象,即需要查找子对象的对象。默认值为None,即当前图形对象。match:匹配规则。默认值为None。取值要求如下:None:当前artist包含的所有子对象。可调用对象: 匹配函数。签名要求为def match(artist: Artist) -> bool原创 2021-05-23 02:20:25 · 30669 阅读 · 0 评论 -
matplotlib之pyplot模块——获取/设置对象属性值(setp()、getp/get())
当前有效matplotlib版本为:3.4.1。概述pyplot模块提供了获取/设置对象属性值的接口。功能类似于Python内置函数getattr和setattr。从源码上来看,get()是getp()的别名,两者是等价的。setp()、getp()的底层实现是基于Python内置函数getattr和setattr。getp()函数:获取对象属性getp()函数的签名为matplotlib.pyplot.getp(obj, *args, **kwargs)。常用参数为:obj :需要查询属性的原创 2021-05-22 18:59:25 · 33447 阅读 · 1 评论 -
matplotlib之pyplot模块——绘制对数线图(loglog()、semilogx()、semilogy())
当前有效matplotlib版本为:3.4.1。对数图常规图表坐标轴采用算术尺度(线形尺度)。对数图即坐标轴采用对数尺度的图表。对数图分为双对数图和半对数图,双对数图是两个坐标轴都采用对数尺度,半对数图就是一个坐标轴采用对数尺度。matplotlib中pyplot模块的loglog()用于绘制双对数图,semilogx()、semilogy()用于绘制半对数图。这三个函数的应用非常相似,都是对plot函数的封装,plot函数的相关概念和参数这三个函数都可以应用。这三个函数的区别在于:loglog(原创 2021-05-21 23:27:06 · 44492 阅读 · 0 评论 -
matplotlib之pyplot模块——为柱状图添加数据标签(bar_label())
当前有效matplotlib版本为:3.4.1。bar_label()概述与其他可视化工具相比,为数据系列添加数据标签一直是matplotlib的薄弱项。bar_label()函数是matplotlib3.4.0新增API,功能是为柱状图添加数据标签。函数的签名为matplotlib.pyplot.bar_label(container, labels=None, *, fmt='%g', label_type='edge', padding=0, **kwargs)。函数的参数为:contai原创 2021-05-20 23:39:00 · 55707 阅读 · 10 评论 -
wordcloud:利用fontawesome字体绘制图标词云图
根据文本生成词云的操作很常见,在某些场景下,我们可以遇到图标也按照某种形状排列的情况,那么可以用生成词云图的方法生成这样的图标词云图吗?如何应用fontawesome字体当前最常见的图标字体就是web字体fontawesome,它常常用于web中。那么在matplotlib或者wordcloud中如何应用这种字体呢。下载fontawesome字体fontawesome也支持在桌面端使用,https://fontawesome.com/how-to-use/on-the-desktop/setup/g原创 2021-05-19 21:43:33 · 30797 阅读 · 0 评论 -
seaborn简明教程(一)
1. Seaborn简介seaborn是基于matplotlib的数据可视化库。它在matplotlib的基础上,进行了更高级的API封装,从而使得绘图更加容易,不需要经过大量的调整,就能使图形变得精致。seaborn的几个鲜明特点如下:绘图接口更加集成,可通过少量参数设置实现大量封装绘图多数图表具有统计学含义,例如分布、关系、统计、回归等对Pandas和Numpy数据类型支持非常友好风格设置更为多样,例如风格、绘图环境和颜色配置等我们应该把seaborn视为matplotlib的补充,而原创 2021-05-18 23:29:30 · 32806 阅读 · 0 评论 -
词云生成库wordcloud详解(三):IntegralOccupancyMap类——词云布局机制
当前wordcloud版本:1.81词云绘制需求在绘制词云时大概有以下需求:词与词之间相互不重叠。尽可能填充满整个空间,词与词之间间隙比较小。空间可能按照某张图片布局,即所有词要布局在图片的轮廓内。词绘制时可能要求随机位置、随机颜色。词的绘制的尺寸可能跟词的一些特征相关。根据词的特征控制词绘制位置、颜色、尺寸比较容易实现。有效利用布局空间,避免词重叠可能需要图像处理的一些知识。wordcloud词云布局机制——积分图根据wordcloud源码可知,wordcloud模块中的Inte原创 2021-05-17 02:05:18 · 30876 阅读 · 0 评论 -
词云生成库wordcloud详解(二):wordcloud.py模块结构、生成颜色接口
当前wordcloud版本:1.81wordcloud.py模块结构wordcloud.py模块是wordcloud包主要模块。wordcloud.py模块结构如下,包括:变量:FILE、FONT_PATH、STOPWORDS类:WordCloud、IntegralOccupancyMap、colormap_color_func函数: random_color_func和 get_single_color_func其中WordCloud类、 STOPWORDS变量、 random_color_原创 2021-05-16 01:22:13 · 31075 阅读 · 0 评论 -
词云生成库WordCloud详解(一):概述、ImageColorGenerator类
当前wordcloud版本:1.81项目地址:https://github.com/amueller/word_cloudAPI、案例地址:https://amueller.github.io/word_cloud/wordcloud简介wordcloud是一款轻量级的Python词云生成库,在Python数据分析领域使用率比较高。注意:wordcloud默认支持自动生成英文词云,如果使用中文词云,需要使用中文分词器(比如jieba)和中文字体。wordcloud依赖的第三方库主要有numpy、原创 2021-05-15 20:59:15 · 33415 阅读 · 2 评论 -
matplotlib:将动画输出为动画文件、HTML(标签文本、文件、嵌入jupyter notebook)
当前有效matplotlib版本为:3.4.1。概述FuncAnimation是matplotlib生成逐帧动画的常用类,它的工作原理就是按照一定时间间隔不断调用参数func对应的函数生成动画。FuncAnimation的继承关系如下:matplotlib.animation.Animation→matplotlib.animation.TimedAnimation→matplotlib.animation.FuncAnimation基类matplotlib.animation.Animation原创 2021-05-14 18:35:59 · 33293 阅读 · 3 评论 -
matplotlib:利用FuncAnimation类生成简易逐帧动画
当前有效matplotlib版本为:3.4.1。概述逐帧动画(Frame By Frame)是一种常见的动画形式,通过将不同的静止图像以一定时间间隔连续播放,因人类视觉暂停现象而获得动画的效果。FuncAnimation是matplotlib生成逐帧动画的常用类,它的工作原理就是按照一定时间间隔不断调用参数func对应的函数生成动画。FuncAnimation的继承关系如下:matplotlib.animation.Animation→matplotlib.animation.TimedAnima原创 2021-05-13 00:51:50 · 39043 阅读 · 4 评论 -
matplotlib之pyplot模块——暂停(pause())
当前有效matplotlib版本为:3.4.1。pause函数概述pause函数功能运行GUI事件循环若干秒。pause函数的签名为matplotlib.pyplot.pause(interval)。参数interval表示秒数,类型为整数。如果当前有活动的图形,在pause函数运行前,图形将会更新并显示,在等待期间事件循环会一直运行,只到暂停时间interval后结束。如果没有当前有活动的图形,将会调用time.sleep函数,休眠interval秒。pause函数与time.sleep函数最原创 2021-05-12 09:13:49 · 45103 阅读 · 1 评论 -
matplotlib之pyplot模块——添加次坐标轴(第二坐标轴)(twinx())
当前有效matplotlib版本为:3.4.1。次坐标轴次坐标轴也被称为第二坐标轴或副坐标轴,用于在一个图形中显示两个不同坐标尺度的图表。twinx函数twinx函数的功能为创建并返回一个共享x轴的子图。twinx函数的签名为matplotlib.pyplot.twinx(ax=None)。参数ax的值类型为Axes对象,默认值为None即当前子图。twinx函数的功能为创建并返回一个共享x轴的子图。新子图将会与ax重叠,新创建的子图的x轴将会隐藏,y轴将会位于子图的右侧。twinx函数的返回原创 2021-05-11 01:41:14 · 38048 阅读 · 1 评论 -
matplotlib之pyplot模块——显示/关闭子图边框(轴脊)(box())
当前有效matplotlib版本为:3.4.2。box()函数概述box()函数的功能为关闭或显示当前子图的所有边框。边框也被称为box、frame或spines,它由上下左右四条轴脊(spine)构成。box()函数的签名为matplotlib.pyplot.box(on=None)。其中on参数的取值为布尔值或None,当取值为True当前子图显示边框,取值为False当前子图关闭边框,取值为None时切换显示、关闭状态。box()函数原理根据box()函数源码可知,其工作原理与matplo原创 2021-05-10 00:40:46 · 37070 阅读 · 1 评论 -
matplotlib之pyplot模块——图形的显示、关闭、重绘(show()、close()、draw())
当前有效matplotlib版本为:3.4.1。显示图形:show()show()的功能为显示所有打开的图形。函数的签名为:matplotlib.pyplot.show(*, block=None)函数只有一个参数block,简单来讲,当取值为True是matplotlib采用非交互绘图模式,取值为False是matplotlib采用交互绘图模式。注意!show()函数的具体行为与当前后端(backend)息息相关,在交互式后端中图形将会嵌入到后端的GUI中显示。def show(*args,原创 2021-05-09 00:53:33 · 78081 阅读 · 4 评论 -
Jupyter Notebook环境下matplotlib后端切换异常解决方法
问题描述Jupyter环境的默认后端在Jupyter Notebook或Jupyter Lab环境中运行以下代码可知import matplotlibprint(matplotlib.get_backend())Jupyter环境的默认后端为:module://ipykernel.pylab.backend_inline切换后端时出现异常本机原后端为qt5agg。运行matplotlib.use('tkagg')后,抛出异常ImportError: Cannot load backend原创 2021-05-08 01:08:38 · 32472 阅读 · 1 评论 -
jupyter lab安装ipympl提供matplotlib交互式后端
概述在Jupyter Notebook或Jupyter Lab环境中运行以下代码可知import matplotlibprint(matplotlib.get_backend())Jupyter环境的默认后端为module://ipykernel.pylab.backend_inline。默认情况下,使用默认后端,matplotlib在Jupyter环境即便开启了交互绘图模式,也不能正常实现交互式绘图。如果在Jupyter环境中实现matplotlib交互式绘图,必须使用Matplotlib原创 2021-05-07 00:50:36 · 38964 阅读 · 2 评论 -
matplotlib之pyplot模块——交互式绘图模式管理(ion()、ioff()、isinteractive())
当前有效matplotlib版本为:3.4.1。交互模式当matplotlib使用交互式后端时,可实现交互式绘图。如果处于交互模式,新创建的图形将会立刻显示,修改图形(即运行新的绘图语句)时原图形会立即重绘,matplotlib.pyplot.show()不会阻塞显示。此时shell可以输入新的命令。如果处于非交互模式,新创建的图形或修改图形时,图形不会立即显示(当执行matplotlib.pyplot.show()时才会显示),matplotlib.pyplot.show()会阻塞显示。此时she原创 2021-05-06 00:32:33 · 38616 阅读 · 1 评论 -
matplotlib之pyplot模块——清除子图、清除图形、删除子图、设置当前子图(cla()、clf()、delaxes()、sca())
当前有效matplotlib版本为:3.4.1。cla函数cla函数的作用是清空当前子图(相当于将当前子图格式化为默认空子图,子图本身并没有被删除)。函数的定义签名为matplotlib.pyplot.cla()。调用链为:matplotlib.pyplot.cla()→matplotlib.pyplot.gca().cla(),作用与Axes.clear()相同。相关源码见matplotlib.axes._base.py案例:验证cla()根据输出可知,子图中原有可见元素均被重置为空值或默认原创 2021-05-05 00:38:26 · 49097 阅读 · 0 评论 -
matplotlib之pyplot模块——保存当前图形(savefig())
当前有效matplotlib版本为:3.4.1。概述savefig()函数的作用是保存当前图形,它是matplotlib输出的主要方式,可将图形保存为png、jpg等格式的图像,具体的输出与正在使用的后端(backends)有关。函数的定义签名为matplotlib.pyplot.savefig(*args, **kwargs)。函数的调用签名为:savefig(fname, dpi=None, facecolor='w', edgecolor='w', orientation='portrait'原创 2021-05-04 00:17:44 · 42313 阅读 · 2 评论 -
matplotlib之pyplot模块——添加图形级图例、文本、轴标签(figlegend()、figtext()、Figure.supxlabel()、Figure.supylabel())
当前有效matplotlib版本为:3.4.1。概述如果不手动创建子图,matplotlib会默认自动创建一个子图,前面介绍的title()、legend()、xlabel()、ylabel()等函数的调用对象其实都是子图对象,也只对子图生效。如果想在整个图形中添加标题、图例、轴标签该如何操作呢?matplotlib.pyplot模块提供了suptitle()、figlegend()、figtext()等函数用于添加图形级的标题、图例、文本。figure对象增加了supxlabel()方法和supy原创 2021-05-03 19:25:34 · 32694 阅读 · 1 评论 -
matplotlib之pyplot模块——创建图形(figure())
figure函数概述在pyplot模块中,figure函数用于创建新的图形,或激活已存在的图形。函数的签名为matplotlib.pyplot.figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=True, FigureClass=<class 'matplotlib.figure.Figure'>, clear=False, **kwargs)函数的参数如下:num:图形的唯原创 2021-05-02 23:00:08 · 40009 阅读 · 2 评论 -
利用matplotlib实现颜色视觉映射的分段多色折线图(模拟ECharts Beijing AQI案例)
概述ECharts提供了大量交互组件,Beijing AQI是ECharts的一个典型的视觉映射案例,y轴的值根据不同的阈值映射为不同的颜色,matplotlib没有现成的解决方案。matplotlib相关案例matplotlib官方案例Multicolored lines提供了类似的解决方案。直接套用该案例发现,效果并不好。问题主要在于如果相邻两个数据点刚好跨越不同值区间,那么这段线只能绘制一种颜色,因此,应当在值区间的转换点之间插入过渡的阈值。import numpy as npimpo原创 2021-05-01 22:29:22 · 35577 阅读 · 10 评论 -
matplotlib:font_manager模块FontProperties类的使用(字体属性)
FontProperties类概述FontProperties类用于存储和操作字体的属性。matplotlib支持的字体属性基于W3C Cascading Style Sheet, Level 1 font specification,主要有以下6个:字体类别(family)、字体风格(style)、字体粗细(weight)、字体大小(size)、字体拉伸(stretch)和字体变体(variant)。FontProperties类签名为:class matplotlib.font_manager.F原创 2021-04-29 00:17:29 · 58789 阅读 · 2 评论 -
matplotlib之pyplot模块——调整子图布局(subplots_adjust、tight_layout)
在pyplot模块中,与调整子图布局的函数主要为subplots_adjust和tight_layout,其中subplots_adjust是修改子图间距的通用函数,tight_layout默认执行一种固定的间距配置,也可以自定义间距配置,底层原理类似于subplots_adjust函数。subplots_adjust函数概述subplots_adjust函数的功能为调整子图的布局参数。对于没有设置的参数保持不变,初始值由rcParams["figure.subplot.[name]"]提供。函数的签原创 2021-04-28 00:35:19 · 60644 阅读 · 3 评论 -
matplotlib之pyplot模块——向任意位置添加一个子图(axes)
当前有效matplotlib版本为:3.4.1。概述axes()函数功能与subplot()函数极其相似。都是向当前图像(figure)添加一个子图(Axes),并将该子图设为当前子图或者将某子图设为当前子图。两者的区别在于subplot()函数通过参数确定在子图网格中的位置,而axes()函数在添加子图位置时根据4个坐标确定位置。函数的定义签名为:matplotlib.pyplot.axes(arg=None, **kwargs)函数的调用签名为:# 在当前图像中添加一个铺满的子图plt.ax原创 2021-04-27 00:35:45 · 33673 阅读 · 4 评论 -
matplotlib之pyplot模块——在特定网格位置中添加一个子图(subplot2grid)
当前有效matplotlib版本为:3.4.1。函数概述subplot2grid函数的功能是在特定网格位置中添加一个子图。函数的定义签名为:matplotlib.pyplot.subplot2grid(shape, loc, rowspan=1, colspan=1, fig=None, **kwargs)。函数的调用签名为:ax = subplot2grid((nrows, ncols), (row, col), rowspan, colspan)函数的参数为:shape:定义子图网格的行原创 2021-04-26 00:36:13 · 30911 阅读 · 0 评论 -
matplotlib之pyplot模块——添加一组子图(subplots)
当前有效matplotlib版本为:3.4.1。概述subplots函数的功能是创建一个figure对象和一组子图。函数的定义签名为:matplotlib.pyplot.subplots(nrows=1, ncols=1, *, sharex=False, sharey=False, squeeze=True, subplot_kw=None, gridspec_kw=None, **fig_kw)函数的参数为:nrows, ncols : 子图网格的行/列数。可选参数。整数,默认值为1。sh原创 2021-04-25 23:11:17 · 32212 阅读 · 2 评论 -
matplotlib之pyplot模块——添加一个子图(subplot)
概述subplot()函数向当前图像(figure)添加一个子图(Axes),并将该子图设为当前子图。或者将某子图设为当前子图。pyplot.subplot()其实是Figure.add_subplot()的一个封装。函数的定义签名为:matplotlib.pyplot.subplot(*args, **kwargs)函数的调用签名为:subplot(nrows, ncols, index, **kwargs)subplot(pos, **kwargs)subplot(**kwargs)su原创 2021-04-24 21:39:42 · 32533 阅读 · 1 评论 -
matplotlib:为饼图或圆环图添加引导线
概述由于饼图/圆环图的饼块大小和饼块背景色影响,直接在饼块上添加注释或标签效果并不好,往往需要在饼块外添加标签,并在标签与饼块之间添加引导线。matplotlib没有提供直接绘制引导线的接口,需要自己定义。添加引导线的思路如下:计算饼块的角度。计算注释标签的坐标。判断饼块位于圆环的左侧或右侧,确定标签文本的对齐方式。确定引导线的连接样式,使引导线从饼块指向注释标签。使用annotate函数绘制注释标签和引导线。案例:绘制圆环图的引导线import numpy as npimport原创 2021-04-23 01:08:58 · 36799 阅读 · 7 评论