专栏电商日志财经减肥爱情
投稿投诉
爱情常识
搭配分娩
减肥两性
孕期塑形
财经教案
论文美文
日志体育
养生学堂
电商科学
头戴业界
专栏星座
用品音乐

Matplotlib快速入门

  这个教程包含了些基础的用法示例和练习,可以帮助您很快熟悉Matplotlib。
  importmatplotlibasmpl
  importmatplotlib。pyplotasplt
  importnumpyasnp一个简单示例
  Matplotlib将您的数据绘制在Figures(画布)上,每一张画布上可以包含一个或多个Axes(坐标系,您可以把坐标(x,y)显示在Axes中,极坐标中的(theta,r),3D坐标的(x,y,z)等)。创建带坐标系的图形的最简单的方法是使作pyplot。subplots(),然后就可以用Axes。plot()方法来在坐标轴上绘制数据。
  fig,axplt。subplots()创建一张画布,上面有一个坐标系
  ax。plot(〔1,2,3,4〕,〔1,4,2,3〕)往坐标系上绘制数据
  〔matplotlib。lines。Line2Dat0xffff91a037f0〕
  png
  Figure的结构
  Figure统筹了所有的子坐标系,那是一组特殊的Artists(包含标题、图例、色条等),甚至嵌套的subfigures。创建新Figure最简单的方法是用pyplot,如:
  fig1plt。figure()一个没有坐标系的空画布,不显示
  fig2,axplt。subplots()包含一个坐标系的画布
  fig3,axsplt。subplots(2,2)包含22坐标系阵列的画布
  png
  png
  将轴与图形一起创建是很方便,但可能不够灵活,您也可以后期手动添加坐标系,要注意,很多Matplotlib后端支持缩放和平移。Axes
  Axes坐标系,可以把它当成一个Artist(画家,我感觉画纸可能更贴切一些),把他绑定到画板(Figure)上,它包含一个可以画图的区域,一般包含2个(3D图的话是3个)Axis(数轴)对象,Axis对象(注意和Axes对象区别,一个是数轴,一个是坐标系)提供了ticks和ticklabels来显示坐标轴的刻度,每个Axes坐标系也有一个title(通过settitle()方法来设置),一个xlabel(通过setxlabel()设置),一个ylabel(通过setylabel()方法来设置)。
  Axes类及其成员函数是使用OOP接口的主要入口,里面定义了大多数的绘图方法,比如ax。plot()Axis
  Axis对象设置比例尺和数值范围,生成标记(ticks,轴上的记号)和标记名(ticklabels,标记记号的字符串),记号的位置由Locator对象确定,标记名字符串由Formatter格式化。正确地组合使用Locator和Formatter可以精准控制刻度位置和标签。Artist基本上,Figure上所有的可见对象都是Aritst(甚至Figure,Axes,Axis对象也是),主要包括Text对象,Line2D对象,collections对象,Patch对象等,当Figure开始渲染时,所有的Aritst都被绘制到Axes上,这些Artist不能被其他坐标系共享,也不能从一个坐标系移动到另一个。输入绘图函数的参数类型
  绘图函数需要numpy。array或者numpy。ma。maskedarray作为输入参数,或者可以传入numpy。asarray的参数,类似数组的类,如pandas数据对象和numpy。matrix对象可能无法按预期工作。常用的作法是绘图前将它们转换成numpy。array对象,比如转化成mumpy。matrix
  bnp。matrix(〔〔1,2〕,〔3,4〕〕)
  basarraynp。asarray(b)
  大多数的对象也会解析一个可寻址对象,比如dict,numpy。recarray,pandas。DataFrame。Matplotlib允许您提供数据关键字参数并生成对应于x和y变量的字符串的图象
  np。random。seed(19680801)
  data{a:np。arange(50),
  c:np。random。randint(0,50,50),
  d:np。random。randn(50)}
  data〔b〕data〔a〕10np。random。randn(50)
  data〔d〕np。abs(data〔d〕)100
  fig,axplt。subplots(figsize(5,2。7),layoutconstrained)
  ax。scatter(a,b,cc,sd,datadata)
  ax。setxlabel(entrya)
  ax。setylabel(entryb)
  Text(0,0。5,entryb)
  png编码样式显式和隐式接口
  如上所述,有两种方法可以使用Matplotlib1。显式创建Figures和Axes,并调用它们的方法(面向对象的方法)。2。依靠pyplot隐式创建和管理Figures和Axes,并使用pyplot的函数进行绘图。
  面向对象方法的例子
  xnp。linspace(0,2,100)Sampledata。
  注意,即使是面向对象的风格,我们也用matplotlib。pyplot。figure来创建Figure
  fig,axplt。subplots(figsize(5,2。7),layoutconstrained)
  ax。plot(x,x,labellinear)往坐标轴上画数据。
  ax。plot(x,x2,labelquadratic)。。。
  ax。plot(x,x3,labelcubic)。。。。
  ax。setxlabel(xlabel)设置X轴标记。
  ax。setylabel(ylabel)设置Y轴标记。
  ax。settitle(SimplePlot)设置坐标轴标题。
  ax。legend()增加图例。
  matplotlib。legend。Legendat0xffff8de910f0
  png
  pyplot的例子
  xnp。linspace(0,2,100)
  plt。figure(figsize(5,2。7),layoutconstrained)
  plt。plot(x,x,labellinear)
  plt。plot(x,x2,labelquadratic)
  plt。plot(x,x3,labelcubic)
  plt。xlabel(xlabel)
  plt。ylabel(ylabel)
  plt。title(simpleplot)
  plt。legend()
  matplotlib。legend。Legendat0xffff8de1fe80
  png
  Matplotlib的文档和示例同时使用面向对象的OO和pyplot样式。一般来说,我们建议使用OO风格,尤其是对于复杂的绘图以及打算作为大型项目的一部分重用的函数和脚本。然而,pyplot样式对于快速交互工作非常方便。大家可以根据实践需要来选择。代码复用
  如果您需要使用不同的数据集反复绘制相同的绘图,或者想要轻松包装Matplotlib的方法,可以使用下面的自定义函数
  defmyplotter(ax,data1,data2,paramdict):
  outax。plot(data1,data2,paramdict)
  returnout
  例如:
  data1,data2,data3,data4np。random。randn(4,100)make4randomdatasets
  fig,(ax1,ax2)plt。subplots(1,2,figsize(5,2。7))
  myplotter(ax1,data1,data2,{marker:x})
  myplotter(ax2,data3,data4,{marker:o})
  〔matplotlib。lines。Line2Dat0xffff8dd0a1d0〕
  png
  大多数的绘图方法都有样式选项,这些选项可以在调用plotting方法时调用,或者在Artist中的setter中访问。在下边的绘图中,我们手动设置颜色、线宽、和线的样式,然后使用setlifestyle设置第二行的线条样式。
  fig,axplt。subplots(figsize(5,2。7))
  xnp。arange(len(data1))
  ax。plot(x,np。cumsum(data1),colorblue,linewidth3,linestyle)
  l,ax。plot(x,np。cumsum(data2),colororange,linewidth2)
  l。setlinestyle(:)
  png
  Matplotlib有一个非常灵活的颜色阵列,大多数艺术家都接受它;有关规格列表,请参阅颜色教程。有些艺术家会采用多种颜色。即对于散点图,标记的边缘可以是与内部不同的颜色:
  fig,axplt。subplots(figsize(5,2。7))
  ax。scatter(data1,data2,s50,facecolorC0,edgecolork)
  matplotlib。collections。PathCollectionat0xffff8dc0e048
  png线宽、线型和标记
  Matplotlib的线宽用印刷点来表示(1pt172英寸),可用于描边,类拟地,描边线可以具有自己的线条样式。
  Markersize标记的大小取决与所使用的方法,plot以点为单位指定标记的大小,一般来说是Marker的直径或宽度。
  scatter指定标记大小与标记的可视区域大致成比例。
  一些常用的标记样式Matplotlib已将其设置为字符串代码,当然,用户也可以自定义自已的标记样式。
  fig,axplt。subplots(figsize(5,2。7))
  ax。plot(data1,o,labeldata1)
  ax。plot(data2,d,labeldata2)
  ax。plot(data3,v,labeldata3)
  ax。plot(data4,s,labeldata4)
  ax。legend()
  matplotlib。legend。Legendat0xffff8dc45ba8
  png给图贴标签Axes的标签和文本
  setxlabel、setylabel和settitle用于在指定位置添加文本。也可以使用文本将文本直接添加到绘图中:
  mu,sigma115,15
  xmusigmanp。random。randn(10000)
  fig,axplt。subplots(figsize(5,2。7),layoutconstrained)
  柱状图的数据
  n,bins,patchesax。hist(x,50,densityTrue,facecolorC0,alpha0。75)
  ax。setxlabel(Length)
  ax。setylabel(probability)
  ax。settitle(Aardvarklengths(notreally))
  ax。text(75,。025,rmu115,sigma1539;)
  ax。axis(〔55,175,0,0。03〕)
  (55。0,175。0,0。0,0。03)
  png
  所有的text函数返回一个matplotlib。text。Text实例,您也可以通过向text函数中传入关键字参数来自定义特性。
  tax。setxlabel(mydata,fontsize14,colorred)在文本中使作数学表达式
  Matplotlib接受Tex方程表达式。如:
  ax。settitle(rsigmai1539;)
  Text(0。5,1。0,sigmai1539;)
  我们还可以给绘图填加注释
  fig,axplt。subplots(figsize(5,2。7))
  tnp。arange(0。0,5。0,0。01)
  snp。cos(2np。pit)
  line,ax。plot(t,s,lw2)
  ax。annotate(localmax,
  xy(2,1),
  xytext(3,2),
  arrowpropsdict(facecolorblack,shrink0。05))
  xy是箭头指向的图中的数据点
  xytext是文本开始的数据点,也是箭尾指向的数据点
  ax。setylim(2,2)
  (2。0,2。0)
  png
  有时,为了便于用户理解,我们常常给图加上图例。
  fig,axplt。subplots(figsize(5,2。7))
  ax。plot(np。arange(len(data1)),data1,labeldata1)
  ax。plot(np。arange(len(data2)),data2,labeldata2)
  ax。plot(np。arange(len(data3)),data3,d,labeldata3)
  ax。legend()
  matplotlib。legend。Legendat0xffff8d9ab630
  png坐标系风格和标尺
  每一个坐标系Axis都有两个或三个数轴(Axis)对象对应x轴和y轴(以及z轴),它们控制了Axis的风格,标尺的位置和标尺的格式。
  除了线性比例,Matplotlib还提供了非线性比例,比如对数比例,如loglog,semilogx,semilogy。这里我们手动设一下比例尺。
  fig,axsplt。subplots(1,2,figsize(5,2。7),layoutconstrained)
  xdatanp。arange(len(data1))makeanordinalforthis
  data10data1
  axs〔0〕。plot(xdata,data)
  axs〔1〕。setyscale(log)
  axs〔1〕。plot(xdata,data)
  〔matplotlib。lines。Line2Dat0xffff8d8eb8d0〕
  png
  fig,axsplt。subplots(2,1,layoutconstrained)
  axs〔0〕。plot(xdata,data1)
  axs〔0〕。settitle(Automaticticks)
  axs〔1〕。plot(xdata,data1)
  axs〔1〕。setxticks(np。arange(0,100,30),〔zero,30,sixty,90〕)第一个是ticket,第二个是label,前后一一对应的关系
  axs〔1〕。setyticks(〔1。5,0,1。5〕)notethatwedontneedtospecifylabels
  axs〔1〕。settitle(Manualticks)
  Text(0。5,1。0,Manualticks)
  png日期字符串
  Matplotlib可以处理日期数组、字符串数组以及浮点数的绘制。它们会根据需要获得特殊的标尺和标签。对于日期:
  fig,axplt。subplots(figsize(5,2。7),layoutconstrained)
  datesnp。arange(np。datetime64(20211115),np。datetime64(20211225),
  np。timedelta64(1,h))
  datanp。cumsum(np。random。randn(len(dates)))
  ax。plot(dates,data)
  cdfmpl。dates。ConciseDateFormatter(ax。xaxis。getmajorlocator())
  ax。xaxis。setmajorformatter(cdf)
  png
  关于分类绘图需要注意的一点是,某些分析文本文件的方法会返回字符串列表,即使字符串都表示数字或日期。如果您传递1000个字符串,Matplotlib将认为您是指1000个类别,并将为您的绘图添加1000个刻度!一些其他的轴对像
  在一个图表中绘制不同单位或大小的数据可能需要额外的y轴。这种情况可以通过使用twinx添加一个新的轴来创建,该轴具有一个不可见的x轴和一个位于右侧的y轴(类似于twiny)。如图:
  fig,(ax1,ax3)plt。subplots(1,2,figsize(7,2。7),layoutconstrained)
  l1,ax1。plot(t,s)
  ax2ax1。twinx()
  l2,ax2。plot(t,range(len(t)),C1)
  ax2。legend(〔l1,l2〕,〔Sine(left),Straight(right)〕)
  ax3。plot(t,s)
  ax3。setxlabel(Angle〔rad〕)
  ax4ax3。secondaryxaxis(top,functions(np。rad2deg,np。deg2rad))
  ax4。setxlabel(Angle〔〕)
  Text(0。5,0,Angle〔〕)
  png
  有时候我们想在二维图中表现三维的信息,我们希望在一个由颜色图中的颜色表示的绘图中有一个第三维度。Matplotlib有许多绘图类型可以做到这一点:
  X,Ynp。meshgrid(np。linspace(3,3,128),np。linspace(3,3,128))
  Z(1X2X5Y3)np。exp(X2Y2)
  fig,axsplt。subplots(2,2,layoutconstrained)
  pcaxs〔0,0〕。pcolormesh(X,Y,Z,vmin1,vmax1,cmapRdBur)
  fig。colorbar(pc,axaxs〔0,0〕)
  axs〔0,0〕。settitle(pcolormesh())
  coaxs〔0,1〕。contourf(X,Y,Z,levelsnp。linspace(1。25,1。25,11))
  fig。colorbar(co,axaxs〔0,1〕)
  axs〔0,1〕。settitle(contourf())
  pcaxs〔1,0〕。imshow(Z2100,cmapplasma,
  normmpl。colors。LogNorm(vmin0。01,vmax100))
  fig。colorbar(pc,axaxs〔1,0〕,extendboth)
  axs〔1,0〕。settitle(imshow()withLogNorm())
  pcaxs〔1,1〕。scatter(data1,data2,cdata3,cmapRdBur)
  fig。colorbar(pc,axaxs〔1,1〕,extendboth)
  axs〔1,1〕。settitle(scatter())
  Text(0。5,1。0,scatter())
  png多画板和多轴模式
  您可以使用figplt。figure()或者fig2,axplt。subplots()方法打开多个画板(Figures),在保留对象引用的前提下,您可以向任一画板添加画家(Artists)。
  您可以通过多种方法来添加坐标系,但最基础的方法还是上面用过的plt。subplots(),要想实现更复杂的布局,如跨行列的布局,可以用subplotmosaic()方法。
  fig,axdplt。subplotmosaic(〔〔upleft,right〕,〔lowleft,right〕〕,
  layoutconstrained)
  axd〔upleft〕。settitle(upleft)
  axd〔lowleft〕。settitle(lowleft)
  axd〔right〕。settitle(right)
  Text(0。5,1。0,right)
  png

图书推荐秋园一个普通母亲苦难的一生一位垂暮的老人开始提笔写作,笔下描述的是自己的母亲。杨本芬与母亲作者杨本芬她说我就像是用笔赶路,重新走了一遍长长的人生。她说人到晚年,我却像一趟踏上征途的列车,一种前所未有的动力推拥有军队,一夫多妻制,大建清真寺,车臣是不是俄罗斯心腹之患?目前俄罗斯联邦共有22个自治共和国,如果有人要问,哪个共和国对普京最为忠诚,人们肯定会异口同声地说车臣。如果从表面来看,确实是如此。车臣总统小卡德罗夫利用各种机会表达爱国之心,他自蓝筹发动行情结束吗?市场传来4个热议消息,对下周股市有影响6月18日是个好日子,大家是不是被昨天的股市走势吓着了!上午大跳水,午盘前拉起全天大涨,但是你的股票没挣到钱,表演的都是大盘股,机构股。我只想说,野百合也有春天。舞台上哪能少了机构福登哈兰德是曼城的一笔重要签约,期待看到他如何进入首发直播吧6月18日讯曼城中场福登最近接受了天空体育采访,并谈到了新队友哈兰德。哈兰德此前已经在接受采访时表示自己经常看曼城的比赛,并称赞福登是一位非常出色且有潜力的球员。福登日前对此对外人好,对家人不好的,通常有三种人,不管哪一种都别深交图源自网络侵权请联系删除有一部电视剧是很多人的童年阴影,叫做不要和陌生人说话。电视剧中的主角安嘉和是一位医生,在外人看来,他医术精湛,彬彬有礼,为人谦和,几乎是一个十全十美的人物,我国第三艘航空母舰下水命名福建舰(1)张召忠局座的名场面第三艘第四艘航母不可能电磁弹射不可能核动力,不可能10万吨。一遍又一遍地说不可能的。因为有些技术太新了。新没关系,领先就领先美国(2)下水,大好消息。中国航同是郑少秋的基因,把郑欣宜和官晶华两女儿一对比,差距就出来了说到郑少秋,观众对他的第一标签是古装男神。他饰演的楚留香面容清俊长身玉立,连古龙都盛赞他世人只知郑少秋而淡忘了古龙,仿佛楚留香就是郑少秋!现年75岁的郑少秋有三段婚姻,四个女儿。他神回复坟上长出来一个奇怪的东东,我要吃了会获得绝世武功吗?如果你的衣服我们不能穿,把你妈的衣服捐了。钱可以让一个人瞬间变脸。演乞丐也能分出天际。那两个女生是谁,你为什么只喜欢我一个人?女朋友这么谨慎都让你给发现了,小伙子可以啊这样的硬币还聊斋从傻瓜到智者,他们却越变越可怕01王元丰王太守是朝廷的大官,奈何自己的儿子王元丰却是个傻子,夫妻二人伤透了脑筋却也无可奈何。灵狐为了报王太守的恩情,便将自己的女儿嫁给了王元丰。王元丰虽然傻了点,甚至常常受到别人德国莱茵金属开发的未来主战坦克总部位于德国杜塞尔多夫的莱茵金属公司在巴黎举行的2022年欧洲防务展上推出了一款PantherKF51主战坦克莱茵金属公司指出,KF51Panther注定要在未来的战场上改变游戏规雄鹿总经理格雷森直播吧6月18日讯今天,雄鹿总经理乔恩霍斯特更新了队内球员格雷森阿伦的最新情况。乔恩霍斯特表示,格雷森阿伦接受了左手无名指的小手术。很多时候,球员们会在休赛期做一些修复类型的常规的
羊毛出在羊身上!她中支付宝一亿大奖,如今垮了身体,没了工作2018年的国庆前夕,支付宝官方通过微博发布了一个活动中国锦鲤活动。只要转发活动微博,就能参与10月7号的抽奖,奖品的价值高达1个亿!这个大奖,会送你法国限量版的奢侈品鞋子,会带你四部门发文加强新时代中医药人才工作人才是中医药发展的第一资源把中医药工作摆在更加突出的位置国家中医药管理局等四部门6月23日发布关于加强新时代中医药人才工作的意见加快培养集聚中医药高层次人才夯实基层中医药人才队伍全我准备好了碧昂丝的派对女郎Summer只有我这么觉得,还是夏天真的成熟了?炎热的天气和烧烤的第一缕香气,就像,嗯,在每年的这个时候,它开始像四层楼高的鼓点一样响。你开始垂涎大海。你对你的希腊语会话感到恐慌。你开始穿不需贾巴里NBA选秀大会今日举行,火箭用探花签选中贾巴里史密斯。史密斯接受采访时表示很高兴来到一支想要我的球队。我很高兴他们愿意赌我。准备好了证明他们做出了正确的决定。并非我意料之中,但我很老年性交易,正在农村角落悄悄进行性是人类的本能,老年人也不例外。被誉为中国性学第一人的潘绥铭在给全性留下历史证据中写道老年人与自己年轻的时候相比,性生活确实减少了。但现在的老年人比起15年之前的老年人,性生活次数安徽省乡村旅游高质量发展行动计划(20222024年)出台日前,中共安徽省委办公厅安徽省人民政府办公厅印发安徽省乡村旅游高质量发展行动计划(20222024年),推动文旅发展思路转化为增收致富出路,绿水青山颜值转化为金山银山价值,全面提升晚上21点,德国男排发声明抗议0北京时间6月24日,在世界男排联赛当中,中国男排遭变故,中国队刚刚从新冠疫情当中恢复过来之后进行比赛,结果德国队和中国队进行比赛,最终,国际排联判罚德国队03告负。在此之前,中国队桃园基隆新竹三地市长选战网络民调结果来了!张善政看好度过半中国台湾网6月24日讯据台湾中天新闻报道,在民进党确认提名新竹市长林智坚参选桃园市长后,蓝绿白三名战将全数就位,对于谁比较有机会拿下桃园市长宝座,根据最新网络投票结果显示,中国国民谁还会造万吨级驱逐舰?有想法的没技术,有技术的却没钱目前全球有万吨级驱逐舰服役的国家就4个,除了中美,就只有日本和韩国。而日本和韩国的万吨级驱逐舰又来自于美国,算是阿利伯克3型的改进型号。那么在部分五常都不能建造万吨级驱逐舰的时候,江西6大怪菜,全是本地人的心头爱,外地人真敢吃江西,有着厚重的历史文化底蕴。厚重的历史孕育了江西人,也使得当地的美食得到了长足的发展。像井冈烟笋老表土鸡汤瓦罐煨猪手等都是美味的江西美食。但是,江西人也会品尝一些怪菜,本地人吃起进攻,在金融上取得对美胜利三月惊蛰3号9号,晴转多云,中午在广州路边随便吃了一点,就去衙门办点事,不能看手机,等2点多办完事情出来,一看手机,几十条留言。满屏都只写了两个字恐慌。经历了连续三天的放量下跌,9
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网