0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何利用Matplotlib用上漂亮的插图

云深之无迹 来源:云深之无迹 作者:云深之无迹 2022-08-15 10:23 次阅读

matplotlib官方有一份短小精悍的小文档,今天分享的就是这个:

d875ae70-1ac0-11ed-ba43-dac502259ad0.png

官网的左下角有

自带的绘图指南真的很好,分享给大家:

d8ae35ce-1ac0-11ed-ba43-dac502259ad0.png

图像的绘制一般都是这样的过程,先导入绘制的库,准备我们要用的数据,将画布建立好,最后就是绘制一下,看看效果。

d8e53880-1ac0-11ed-ba43-dac502259ad0.png

d9096cc8-1ac0-11ed-ba43-dac502259ad0.png

这些是基础的图

d933dc9c-1ac0-11ed-ba43-dac502259ad0.png

可以在图里面修改任意你看到的东西

d95d13d2-1ac0-11ed-ba43-dac502259ad0.png

可以在图里面绘制多个数据

d9903550-1ac0-11ed-ba43-dac502259ad0.png

可以轻松的加图例

d9aeed7e-1ac0-11ed-ba43-dac502259ad0.png

可以将精美的图片保存下来

d9c68880-1ac0-11ed-ba43-dac502259ad0.png

让我们以一个小demo开始

d9e9d4f2-1ac0-11ed-ba43-dac502259ad0.png

这里报错了,原因是mxnet这个库,是和Numpy一个库的旧版本强相关的。需要先安装VS,因为mxnet会使用VS来编译旧版本的Numpy库,然后你要卸载matplotlib,在上面的库安装好后,再安装它,这样就是向下兼容了。其实可以搞虚拟环境的,但是我不经常用。

da09f214-1ac0-11ed-ba43-dac502259ad0.png

我在报错的过程中找到,在win安装,需要VS

打开安装

dae92786-1ac0-11ed-ba43-dac502259ad0.png

库其实就是一个pip的命令

db0daa48-1ac0-11ed-ba43-dac502259ad0.png

选择这些就OK

db26f99e-1ac0-11ed-ba43-dac502259ad0.png

下载安装

db5723f8-1ac0-11ed-ba43-dac502259ad0.png

我至今没有登陆

db793254-1ac0-11ed-ba43-dac502259ad0.png

重新再VS的帮助下编译numpy

db93e194-1ac0-11ed-ba43-dac502259ad0.png

这样就算安装完成了

dbb40c62-1ac0-11ed-ba43-dac502259ad0.png

OK

dbd1c9d2-1ac0-11ed-ba43-dac502259ad0.png

会报错这个

dbf02e22-1ac0-11ed-ba43-dac502259ad0.png

我又不想看我自己写的东西

报错信息说matplotlib包用的是后端是ipykernel.pylab.backend_inline,这个后端不支持在编译器前端显示。为了支持所有的使用情形,matplotlib能够产生不同的输出,而把每一个不同输出的能力叫做一个后端。而前端就是用户需要处理的代码,如绘图代码,然后后端做的就是所有看不到的辛苦工作来生成视图窗口。这里有两种不同类型的后端:

1.用户接口后端(又叫做"交互式后端",如pygtk, wxpython, thinter,qt, macosx或者fltk)。

2.硬拷贝后端,也叫做非交互式后端,用来生成图像文件(PNG,SVG,PDF, PS)

所以matplotlib不显示图象就是当前的用户接口后端不支持前端显示并交互,所以我们需要自己配置。有两种方式配置你的后端。

在matplotlibrc文件中设置后端参数:

另外一种方式是使用matplotlib的use()命令。调用use()方法必须在import matplotlib.pyplot或者matplotlib.pylab之前设置

可以使用的后端有 [‘GTK3Agg’, ‘GTK3Cairo’, ‘MacOSX’, ‘nbAgg’, ‘Qt4Agg’, ‘Qt4Cairo’, ‘Qt5Agg’, ‘Qt5Cairo’, ‘TkAgg’, ‘TkCairo’, ‘WebAgg’, ‘WX’, ‘WXAgg’, ‘WXCairo’, ‘agg’, ‘cairo’, ‘pdf’, ‘pgf’, ‘ps’, ‘svg’, ‘template’]

dc295012-1ac0-11ed-ba43-dac502259ad0.png

也就是这样

dc4165da-1ac0-11ed-ba43-dac502259ad0.png

会出现

dc5b792a-1ac0-11ed-ba43-dac502259ad0.png

很OK,舒服了

dc8b0e9c-1ac0-11ed-ba43-dac502259ad0.png

我们看这个图肯定不面生

圆圈圈住的地方,就是我们可以控制的地方.

dcb874cc-1ac0-11ed-ba43-dac502259ad0.png

单词的意思是,解剖

蓝色的意思是图摆件的具体名字,一般一个图会拥有里面若干的部分。

dcc5fa20-1ac0-11ed-ba43-dac502259ad0.png

最新的图是这个,更加的精美

dd0e7ea8-1ac0-11ed-ba43-dac502259ad0.png

绘图的时候,很多时候需要我们将一堆图放一起展示

dd374478-1ac0-11ed-ba43-dac502259ad0.png

双个并联

dd5dcf76-1ac0-11ed-ba43-dac502259ad0.png

2X2

dd8519dc-1ac0-11ed-ba43-dac502259ad0.png

单框

dda9bd0a-1ac0-11ed-ba43-dac502259ad0.png

我们用的最多的就是这些基础的图像

ddd16152-1ac0-11ed-ba43-dac502259ad0.png

使用 Alpha 混合将图像叠加在一起

将数据显示为图像,即在 2D 常规栅格上。输入可以是实际的 RGB(A) 数据,也可以是 2D 标量数据,它们将被渲染为伪彩色图像。要显示灰度图像,请使用参数设置颜色映射 。

ddf23bac-1ac0-11ed-ba43-dac502259ad0.png

def func3(x, y):    return (1 - x / 2 + x**5 + y**3) * np.exp(-(x**2 + y**2))

Z2 = func3(X, Y)

Z2就是这里传入的参数

de1c755c-1ac0-11ed-ba43-dac502259ad0.png

当然还有高级的绘图功能

de43f046-1ac0-11ed-ba43-dac502259ad0.png

数据在轴上面的缩放形式

de6f6a8c-1ac0-11ed-ba43-dac502259ad0.png

dea4b58e-1ac0-11ed-ba43-dac502259ad0.png

立体到平面的映射转换

ded7053e-1ac0-11ed-ba43-dac502259ad0.png

不同的线形

def26266-1ac0-11ed-ba43-dac502259ad0.png

上面不同的标记

df197c48-1ac0-11ed-ba43-dac502259ad0.png

不同的颜色定义

df3bd892-1ac0-11ed-ba43-dac502259ad0.png

颜色空间的变换

df6a2bca-1ac0-11ed-ba43-dac502259ad0.png

刻度给了数据量化的准则

df8d0bb8-1ac0-11ed-ba43-dac502259ad0.png

dfa9a93a-1ac0-11ed-ba43-dac502259ad0.png

上面是定位,下面是格式

dfc54096-1ac0-11ed-ba43-dac502259ad0.png

图例

dff2fa36-1ac0-11ed-ba43-dac502259ad0.png

颜色条

e00ff028-1ac0-11ed-ba43-dac502259ad0.png

对图像的注释

e02f22fe-1ac0-11ed-ba43-dac502259ad0.png

就像这样

e05d5dae-1ac0-11ed-ba43-dac502259ad0.png

这样

e0b17eb6-1ac0-11ed-ba43-dac502259ad0.png

高级文本框标注

e0dad37e-1ac0-11ed-ba43-dac502259ad0.png

指示框风格

e11b488c-1ac0-11ed-ba43-dac502259ad0.png

弯曲风格

e1395a3e-1ac0-11ed-ba43-dac502259ad0.png

bar的链接样式

e15df858-1ac0-11ed-ba43-dac502259ad0.png

轴之间的缩放效果

https://matplotlib.org/stable/users/explain/event_handling.html

很多时间我们也关注UI的交互

e18cf130-1ac0-11ed-ba43-dac502259ad0.png

当你点了一个图像,移动了鼠标,都可以被计算

e1afaca2-1ac0-11ed-ba43-dac502259ad0.png

自带的有几种风格

e1d5cb1c-1ac0-11ed-ba43-dac502259ad0.png

对于子图,当然也可以做更加精细化的调节

e1f7c4ce-1ac0-11ed-ba43-dac502259ad0.png

也可以做二维平面的转换

e21c7b34-1ac0-11ed-ba43-dac502259ad0.png

默认的取值范围

e22f6ab4-1ac0-11ed-ba43-dac502259ad0.png

文本属性和布局

e25d9b8c-1ac0-11ed-ba43-dac502259ad0.png

文字的风格

e28b400a-1ac0-11ed-ba43-dac502259ad0.png

字型

e2a360ea-1ac0-11ed-ba43-dac502259ad0.png

颜色的名字

e2d87726-1ac0-11ed-ba43-dac502259ad0.png

图像插值

e2fd91aa-1ac0-11ed-ba43-dac502259ad0.png

还是插值

e32b8bfa-1ac0-11ed-ba43-dac502259ad0.png

图例的位置

e34c920a-1ac0-11ed-ba43-dac502259ad0.png

动画的连接风格

e3726be2-1ac0-11ed-ba43-dac502259ad0.png

动画的箭头风格

助力每个追爱的人的梦想

加油哇!

问世间情为何物,直叫人屁滚尿流。

论文里面怎么可能缺少漂亮的插图呢?就使用Matplotliab了~

审核编辑:彭静
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据
    +关注

    关注

    8

    文章

    7026

    浏览量

    89022
  • 图像
    +关注

    关注

    2

    文章

    1084

    浏览量

    40461
  • 绘图
    +关注

    关注

    0

    文章

    26

    浏览量

    19641

原文标题:Matplotlib-SuperShow

文章出处:【微信号:TT1827652464,微信公众号:云深之无迹】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Python2D绘图库Matplotlib会用吗?

    Matplotlib是一个Python语言的2D绘图库,它支持各种平台,并且功能强大,能够轻易绘制出各种专业的图像。本文是对它的一个入门教程。
    的头像 发表于 08-06 09:09 3174次阅读
    Python2D绘图库<b class='flag-5'>Matplotlib</b>会用吗?

    教你如何利用傅里叶变换干漂亮的事

    傅里叶变换是一种在各个领域都经常使用的数学工具。这个网站将为你介绍傅里叶变换能干什么,为什么傅里叶变换非常有用,以及你如何利用傅里叶变换干漂亮的事。
    的头像 发表于 07-10 10:37 2220次阅读

    学习Python大数据与机器学习必会Matplotlib知识

    Matplotlib练习题十道,来看下你会不会做:准备数据执行:import numpy as npx = np.arange(0,100)y = x*2z = x**21、导入
    发表于 07-05 17:57

    Matplotlib绘制柱柱状图、直方图、条形图的使用语法

    Matplotlib - 柱状图、直方图、条形图 bar() & barh() 所有用法详解
    发表于 04-18 08:17

    matplotlib绘图中编写的辅助函数总结

    matplotlib做图中常用的辅助函数
    发表于 05-17 17:12

    数据可视化之Python-matplotlib概述

    数据可视化(二):Python-matplotlib
    发表于 07-22 14:58

    python matplotlib模块报错的解决方法

    pyenv下使用python matplotlib模块的问题解决
    发表于 10-30 09:12

    电动机效率 matlab,【原创】matplotlib绘制电机效率MAP图 精选资料分享

    matplotlib简介matplotlib是Python的第三方工具包,顾名思义它是一个关于矩阵及绘图的开发包,里面丰富的函数以及类似MATLAB的函数可以让我们很快绘制一幅图像(Figure
    发表于 09-01 06:31

    《电子设计工程》插图特作规范

    《电子设计工程》插图特作规范插图分为线条图和灰度图。图片精度不得小于300DPI。插图一般不超过5幅,一个图内有多张子图的按一张计算。
    发表于 04-09 09:47 30次下载

    万用表使用从入门到精通-孙立群.插图

    电子发烧友网站提供《万用表使用从入门到精通-孙立群.插图版.txt》资料免费下载
    发表于 10-09 16:01 0次下载

    基于.NET的IETM系统中CCM插图编码规则

    文件)插图作为IETM中插图显示的主要方式,其在装备信息传递上具有显示、导航、查询和信息提取等独特优势,满足
    发表于 11-01 16:06 2次下载
    基于.NET的IETM系统中CCM<b class='flag-5'>插图</b>编码规则

    用于数据科学的python必学模块之Matplotlib的资料说明

    本文档的主要内容详细介绍的是用于数据科学的python必学模块之Matplotlib的资料说明。
    发表于 09-18 08:00 14次下载
    用于数据科学的python必学模块之<b class='flag-5'>Matplotlib</b>的资料说明

    Python的Matplotlib函数汇总

    本文档的主要内容详细介绍的是Python的Matplotlib函数汇总免费下载。
    发表于 12-17 08:00 2次下载

    Arduino Nano漂亮礼服

    电子发烧友网站提供《Arduino Nano漂亮礼服.zip》资料免费下载
    发表于 07-11 09:39 0次下载
    Arduino Nano<b class='flag-5'>漂亮</b>礼服

    python中matplotlib和seaborn介绍

    的使用和分析,而数据的整合最好的方式就是使用可视化的方式将数据变现出来。 matplotlib和seabornde介绍 在Python中,我们可以使用matplotlib库和seaborn库来生成各种图表。matplotlib
    的头像 发表于 10-07 11:16 1009次阅读
    python中<b class='flag-5'>matplotlib</b>和seaborn介绍