首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Matplotlib+Numpy绘图之多种绘图

Matplotlib+Numpy绘图之多种绘图

作者头像
mythsman
发布于 2022-11-14 06:59:29
发布于 2022-11-14 06:59:29
1K00
代码可运行
举报
运行总次数:0
代码可运行

下面将以例子的形式分析matplot中支持的,分析中常用的几种图。

填充图

参考代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from matplotlib.pyplot import *
x=linspace(-3,3,100)
y1=np.sin(x)
y2=np.cos(x)
fill_between(x,y1,y2,where=(y1>=y2),color='red',alpha=0.25)
fill_between(x,y1,y2,where=(y<>y2),color='green',alpha=0.25)
plot(x,y1)
plot(x,y2)
show()

简要分析

这里主要是用到了fill_between函数。这个函数很好理解,就是传入x轴的数组和需要填充的两个y轴数组;然后传入填充的范围,用where=来确定填充的区域;最后可以加上填充颜色啦,透明度之类修饰的参数。

当然fill_between函数还有更加高级的用法,详见fill_between用法或者help文档。

效果图

散点图(scatter plots)

参考代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from matplotlib.pyplot import *
n = 1024
X = np.random.normal(0,1,n)
Y = np.random.normal(0,1,n)
T = np.arctan2(Y,X)
scatter(X,Y, s=75, c=T, alpha=.5)
xlim(-1.5,1.5)
ylim(-1.5,1.5)
show()

简要分析

首先介绍一下numpy 的normal函数,很明显,这是生成正态分布的函数。这个函数接受三个参数,分别表示正态分布的平均值,标准差,还有就是生成数组的长度。很好记。

然后是arctan2函数,这个函数接受两个参数,分别表示y数组和x数组,然后返回对应的arctan(y/x)的值,结果是弧度制。

接下来用到了绘制散点图的scatter方法,首先当然是传入x和y数组,接着s参数表示scale,即散点的大小;c参数表示color,我给他传的是根据角度划分的一个数组,对应的就是每一个点的颜色(虽然不知道是怎么对应的,不过好像是一个根据数组内其他元素进行的相对的转换,这里不重要了,反正相同的颜色赋一样的值就好了);最后是alpha参数,表示点的透明度。

至于scatter函数的高级用法可以参见官方文档scatter函数或者help文档。

最后设置下坐标范围就好了。

效果图

条形图(bar plots)

参考代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from matplotlib.pyplot import *
n = 12
X = np.arange(n)
Y1 = (1-X/float(n)) * np.random.uniform(0.5,1.0,n)
Y2 = (1-X/float(n)) * np.random.uniform(0.5,1.0,n)
bar(X, +Y1, facecolor='#9999ff', edgecolor='white')
bar(X, -Y2, facecolor='#ff9999', edgecolor='white')
for x,y in zip(X,Y1):
	text(x+0.4, y+0.05, '%.2f' % y, ha='center', va= 'bottom')
for x,y in zip(X,Y2):
	text(x+0.4, -y-0.05, '%.2f' % y, ha='center', va= 'top')
xlim(-.5,n)
xticks([])
ylim(-1.25,+1.25)
yticks([])
show()

简要分析

注意要手动导入pylab包,否则会找不到bar。。。

首先用numpy的arange函数生成一个[0,1,2,...,n]的数组。(用linspace也可以)

其次用numpy的uniform函数生成一个均匀分布的数组,传入三个参数分别表示下界、上界和数组长度。并用这个数组生成需要显示的数据。

然后就是bar函数的使用了,基本用法也和之前的plot、scatter类似,传入横纵坐标和一些修饰性参数。

接着我们需要用for循环来为柱状图显示数字:用python的zip函数将X和Y1两两配对并循环遍历,得到每一个数据的位置,然后用text函数在该位置上显示一个字符串(注意位置上的细节调整)。text传入横纵坐标,要显示的字符串,ha参数制定横向对齐,va参数制定纵向对齐。

最后调整下坐标范围,并且取消横纵坐标上的刻度以保持美观即可。

至于bar函数的具体用法可以参照bar函数用法或者help文档。

效果图

等高线图(contour plots)

参考代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from matplotlib.pyplot import *
def f(x,y):
    return (1-x/2+x**5+y**3)*np.exp(-x**2-y**2)
n = 256
x = np.linspace(-3,3,n)
y = np.linspace(-3,3,n)
X,Y = np.meshgrid(x,y)
contourf(X, Y, f(X,Y), 8, alpha=.75, cmap=cm.hot)
C = contour(X, Y, f(X,Y), 8, colors='black', linewidth=.5)
clabel(C, inline=1, fontsize=10)
show()

简要分析

首先要明确等高线图是一个三维立体图,所以我们要建立一个二元函数f,值由两个参数控制,(注意,这两个参数都应该是矩阵)。

然后我们需要用numpy的meshgrid函数生成一个三维网格,即,x轴由第一个参数指定,y轴由第二个参数指定。并返回两个增维后的矩阵,今后就用这两个矩阵来生成图像。

接着就用到coutourf函数了,所谓contourf,大概就是contour fill的意思吧,只填充,不描边;这个函数主要是接受三个参数,分别是之前生成的x、y矩阵和函数值;接着是一个整数,大概就是表示等高线的密度了,有默认值;然后就是透明度和配色问题了,cmap的配色方案这里不多研究。

随后就是contour函数了,很明显,这个函数是用来描线的。用法可以类似的推出来,不解释了,需要注意的是他返回一个对象,这个对象一般要保留下来个供后续的加工细化。

最后就是用clabel函数来在等高线图上表示高度了,传入之前的那个contour对象;然后是inline属性,这个表示是否清除数字下面的那条线,为了美观当然是清除了,而且默认的也是1;再就是指定线的宽度了,不解释,。

效果图

点阵图

参考代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from matplotlib.pyplot import *
def f(x,y):
    return (1-x/2+x**5+y**3)*np.exp(-x**2-y**2)
n = 10
x = np.linspace(-3,3,3.5*n)
y = np.linspace(-3,3,3.0*n)
X,Y = np.meshgrid(x,y)
Z = f(X,Y)
imshow(Z,interpolation='nearest', cmap='bone', origin='lower')
colorbar(shrink=.92)
show()

简要分析

这段代码的目的就是将一个矩阵直接转换为一张像照片一样的图,完整的进行显示。

前面的代码就是生成一个矩阵Z,不作解释。

接着用到了imshow函数,传人Z就可以显示出一个二维的图像了,图像的颜色是根据元素的值进行的自适应调整,后面接了一些修饰性的参数,比如配色方案(cmap),零点位置(origin)。

最后用colorbar显示一个色条,可以不传参数,这里传进去shrink参数用来调节他的长度。

效果图

3D图

参考代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import numpy as np
from pylab import *
from mpl_toolkits.mplot3d import Axes3D
fig = figure()
ax = Axes3D(fig)
X = np.arange(-4, 4, 0.25)
Y = np.arange(-4, 4, 0.25)
X, Y = np.meshgrid(X, Y)
R = np.sqrt(X**2 + Y**2)
Z = np.sin(R)
ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=plt.cm.hot)
ax.contourf(X, Y, Z, zdir='z', offset=-2, cmap=plt.cm.hot)
ax.set_zlim(-2,2)
show()

简要分析

有点麻烦,需要用到的时候再说吧,不过原理也很简单,跟等高线图类似,先画图再描线,最后设置高度,都是一回事。

效果图

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
腾讯专有云TCE-PaaS层产品介绍(V3.4.2)
点击https://active.clewm.net/AbhnJM?qrurl=http://qr15.cn/AbhnJM&gtype=1&key=518aa16c9e161dd7456060b373
腾讯专有云
2022/06/24
2K1
腾讯专有云TCE-PaaS层产品介绍(V3.4.2)
腾讯专有云TCE平台产品介绍(V3.4.0)
点击https://active.clewm.net/Aqc6tx?qrurl=http://qr15.cn/Aqc6tx&gtype=1&key=e871816aa23097a9b560609079
腾讯专有云
2022/06/24
4K1
腾讯专有云TCE平台产品介绍(V3.4.0)
腾讯专有云TCE-IaaS层产品介绍(V3.4.2)
点击https://active.clewm.net/B3spIt?qrurl=http://qr15.cn/B3spIt&gtype=1&key=4ab7a1646ce59fca6560605db3
腾讯专有云
2022/06/24
1.6K0
腾讯专有云TCE-IaaS层产品介绍(V3.4.2)
腾讯专有云TCE IaaS层产品介绍(V3.4.0)
点击https://active.clewm.net/FNtf4X?qrurl=http://qr15.cn/FNtf4X&gtype=1&key=5607f16b8c08379bb56060c2b9
腾讯专有云
2022/06/24
1.7K0
腾讯专有云TCE IaaS层产品介绍(V3.4.0)
腾讯专有云TCE PaaS层产品介绍(V3.4.0)
点击https://active.clewm.net/BO2DfQ?qrurl=http://qr15.cn/BO2DfQ&gtype=1&key=9c731165468a934b1560600f0a
腾讯专有云
2022/06/24
3.2K1
腾讯专有云TCE PaaS层产品介绍(V3.4.0)
专有云TCE解决方案入选优秀案例,腾讯云IPv6再获权威认可
近日,中央网信办、工信部组织的“2022年 IPv6 规模部署和应用优秀案例”评选结果揭晓,腾讯专有云TCE 的“面向专有云场景的 IPv6 网络解决方案”入选优秀案例。 腾讯专有云 IPv6 IPv6 是网络强国建设的基础支撑,对社会发展具有重要意义。据了解,我国 IPv6 网络基础设施规模全球领先,已申请的 IPv6 地址资源位居全球第一。 然而,在专有云场景下,网络环境更复杂、接入场景更多样化。金融、政务等客户对网络稳定性、高可用的要求极高。将内外网的大量模块平滑升级到 IPv6,是一项复杂的系统性
腾讯专有云
2023/01/10
1.6K0
专有云TCE解决方案入选优秀案例,腾讯云IPv6再获权威认可
新基建下,腾讯专有云TCE 助力企业降本增效
7 月 29 日,由中国信息通信研究院、中国通信标准化协会主办,中国信息通信研究院云计算开源产业联盟承办的 2020 年可信云线上峰会隆重开幕。
腾讯专有云
2022/06/24
2.8K0
新基建下,腾讯专有云TCE 助力企业降本增效
重磅!腾讯专有云TCE率先通过一云多算标准评估!
2024年12月20日,由中国信息通信研究院(简称“中国信通院”)在京举办了“央国企上云高质量发展沙龙”主题大会。本次大会上,首批一云多算标准评估结果正式发布,并且揭晓了一云多算突出贡献专家。值得关注的是,腾讯专有云TCE首批通过《一云多算技术能力要求》能力评估。与此同时,腾讯专有云产品专家向阳胜凭借其在一云多算领域的深厚功底,以及对产品标准的前瞻规划与卓越贡献,荣获突出贡献专家。
腾讯专有云
2025/02/05
2550
重磅!腾讯专有云TCE率先通过一云多算标准评估!
安全合规!专有云发布“云平台商用密码应用解决方案”
专有云产品中心联合腾讯安全云鼎实验室发布“云平台商用密码应用解决方案”,本方案面向最新实施的国标 GB/T 39786-2021《信息安全技术信息系统密码应用基本要求》标准3级要求,并通过了第三方认证评测机构的评测。该方案可有效化解行业客户对业务上云过程中的密码安全应用合规压力,并以领先的数据安全能力支撑客户云上应用系统的整体安全,让客户可专注于云上应用,成就业务价值。
腾讯专有云
2022/06/24
2.9K0
安全合规!专有云发布“云平台商用密码应用解决方案”
首批!腾讯专有云TCE和TCS通过信通院容灾认证
近日,腾讯专有云TCE和TCS 首批通过了中国信息通信研究院(以下简称信通院)《专有云容灾技术能力要求》,从基础设施能力、架构容灾能力、平台容灾能力三大类13子项88细项100%满足监管机构对专有云容灾的技术能力要求。TCE和TCS的容灾能力达到业界领先水平。
腾讯专有云
2024/05/22
1K0
首批!腾讯专有云TCE和TCS通过信通院容灾认证
腾讯云:公有云如何「专有化」
机器之心原创 作者:旗舰 经过几天的通宵奋战,孙其琛和他的团队刚刚完成了一家大型金融机构的专有云部署项目。迎着第一缕阳光走出机房的他们,倒头便睡在了会议室的沙发上。 熬夜加班后在会议室补觉的景象,在互联网公司十分常见,但在金融和政府客户的工作氛围中,这样的场景显得反差感很大。 「金融行业比较传统,员工日常都是西装革履,上下班也是朝九晚五。整体跟我们的工作模式差别挺大的。」习惯了短裤 + 文化衫的孙其琛是个典型的 IT 男,但是作为腾讯云的专有云中心技术总监,近几年他一直在与「高大上」的政府、金融行业领导
机器之心
2023/03/29
8.3K0
腾讯云:公有云如何「专有化」
腾讯云TCE,破解银行系统扩容及池化难题
意识的进步,固然是银行演进,进而迈向更大商业成功的重要前提。不过倘或技术存在明显的短板,势必会造成理想与现实的割裂,所谓的银行4.0也就只能是镜花水月。
腾讯专有云
2023/04/03
2.3K0
腾讯云TCE,破解银行系统扩容及池化难题
腾讯专有云高可用设计内幕揭秘
导语 近几年,大型公有云故障引发的生产业务事故案例时有发生。由于很多开发者默认大型公有云的服务是一直可用的,在开发时没有针对公有云服务进行容错设计,在公有云故障时,就出现了业务的异常。可见,由于大型公有云实际上已经成为了全社会共同拥有的IT基础设施,其业务的高可用也已经成为了企业社会责任的一部分。腾讯云是如何通过完备的高可用设计,来保证云服务的业务连续性和数据持久性,从而承担大厂应有的社会责任的呢? 这篇来自腾讯专有云的架构师方天戟的万字长文为您揭开腾讯专有云高可用设计的内幕。 一. IT 业务高可用的
腾讯专有云
2023/01/01
7.5K0
腾讯专有云高可用设计内幕揭秘
腾讯云TCE助力新基建步入快车道
5月28日,全国“两会”完美闭幕。李克强总理作政府工作报告中,提出扩大有效投资,重点支持“两新一重”建设。其中第一个“新”就是新型基础设施建设,简称新基建。“新型基础设施建设”首次被纳入2020年政府工作报告,意味着新基建将进入加速期。
腾讯专有云
2022/06/24
1.5K0
腾讯云TCE助力新基建步入快车道
腾讯云核心伙伴高层沟通会-专有云专场
4月13日,腾讯云核心伙伴高层沟通会在腾讯滨海大厦顺利召开。其中专有云专场,和到场的核心伙伴就合作模式、双方收益等共赢方式,围绕信创、小型化、云原生三大主题进行深入探讨和交流。 渠道是大势所趋 生态共建是产业发展的唯一选择,伙伴建设是大势所趋。腾讯坚持做好“数字化助手”,结合生态伙伴的能力,为客户提供最优的产品、服务。过去几年间,腾讯从数字技术供给、解决方案打造、企业成长三个维度,逐步构建起产业互联网的开放生态。目前,已经与近万多家合作伙伴共建,形成几百项联合解决方案。 专有云已经做好了准备 经过近三四年
腾讯专有云
2023/04/28
1.6K0
腾讯云核心伙伴高层沟通会-专有云专场
一云多芯是专有云的核心需求
为加强金融机构、金融科技企业之间的交流,分享国内大厂金融云自主创新建设方案,探讨相关成功经验并展示未来规划,8月19日,由深圳市金融科技协会主办的 “湾区金科(FinTech)沙龙(第十五期)——金融云创新专场”线上活动顺利举行。
腾讯专有云
2022/06/24
2.2K0
一云多芯是专有云的核心需求
10个月换“心”!腾讯专有云TCE助力富融银行核心系统升级
(左起:腾讯云商业银行解决方案总经理曹骏,微众银行数字金融发展部副总经理周铭,富融银行副行政总裁、首席技术官邱家骅,腾讯云副总裁胡利明,富融银行云计算和基础架构高级总监汤豪昊)
腾讯专有云
2025/02/20
2510
10个月换“心”!腾讯专有云TCE助力富融银行核心系统升级
腾讯专有云研发过程首次披露
2018年11月3日,DevOps国际峰会于深圳圣淘沙酒店举行,上午的腾讯研发效能专场,开场前已座无虚席。由腾讯工蜂Git、腾讯TAPD、腾讯专有云三位产品/技术负责人带来各自产品在DevOps实践上的分享,这也是腾讯专有云首次披露研发过程。
腾讯技术工程官方号
2018/11/08
9.6K0
加速深度用云!腾讯专有云多项目获评“2023年度可信云最佳实践”
7月25日,在2023可信云大会上,中国信息通信研究院(下称“信通院”)正式发布2023年度可信云最佳实践结果,腾讯云凭借领先的技术和丰富的实战经验,共计4个项目入选最佳实践。
腾讯专有云
2023/08/03
5330
加速深度用云!腾讯专有云多项目获评“2023年度可信云最佳实践”
腾讯云与金证股份完成多项产品互认证,共同推进证券行业国产化建设
5月26日,在金证股份主办、腾讯云承办的2023金证科技节上,腾讯云与深圳市金证科技股份有限公司(下文简称“金证股份”)发布证券行业新一代云原生核心系统联合解决方案,多款产品已完成互认证。双方将共同推进证券行业新一代核心系统国产化建设,助力金融机构数字化转型。 金证股份是国内领军的金融科技全领域服务商,也是腾讯云在证券行业的重要合作伙伴。凭借强大的整体方案服务能力,金证股份已经成为国内众多交易所、证券、基金、期货、银行、信托、保险等金融机构的首选服务商。 新一代云原生核心系统联合解决方案基于金证FS2.0(
腾讯云数据库 TencentDB
2023/06/02
6320
腾讯云与金证股份完成多项产品互认证,共同推进证券行业国产化建设
推荐阅读
相关推荐
腾讯专有云TCE-PaaS层产品介绍(V3.4.2)
更多 >
LV.0
这个人很懒,什么都没有留下~
目录
  • 填充图
    • 参考代码
    • 简要分析
    • 效果图
  • 散点图(scatter plots)
    • 参考代码
    • 简要分析
    • 效果图
  • 条形图(bar plots)
    • 参考代码
    • 简要分析
    • 效果图
  • 等高线图(contour plots)
    • 参考代码
    • 简要分析
    • 效果图
  • 点阵图
    • 参考代码
    • 简要分析
    • 效果图
  • 3D图
    • 参考代码
    • 简要分析
    • 效果图
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档