Python |
您所在的位置:网站首页 › hfss怎么画任意形状图形 › Python |
前言 在系列博文的中,我们已经学习了如何自定义绘图的颜色和样式,以使得绘制更加精美、符合审美要求。可以用Matplotlib绘制出复杂而又精美的统计图,同时也讲解了注释的用法,但是这远远不够,很多时候我们还需要绘制复杂形状,以使统计图变得更加复杂,看起来更加高级,考虑到这一需求,Matplotlib提供了大量自定义形状的函数,利用可以在统计图中添加各种复杂形状,以使得所绘制的统计图更加具有高级感。 添加辅助网格 当我们查看图形时,可能需要快速估计出图形中某一部分的坐标,这时,向图形中添加辅助网格将是一种提高图形可读性的良好方法。 import numpy as np import matplotlib.pyplot as plt data = np.random.standard_normal((150, 2)) plt.scatter(data[:,0],data[:,1],c=‘y’) plt.grid(True, lw=.5, ls=‘–’, c=‘c’) plt.show() Tips:添加辅助网格只需调用以True为参数的plt.grid()函数,网格由线条组成,因此plt.grid()可以接受线条样式参数(如linewidth、linestyle以及color等)来修改辅助网络中的线条。 添加辅助线 由于Matplotlib生成的所有图形都由基本原语组成,因此我们可以使用一个基本的原语:lines来添加辅助线。 import matplotlib.pyplot as plt N = 16 for i in range(N): plt.gca().add_line(plt.Line2D((0, i), (N - i, 0), color = ‘m’)) plt.axis(‘tight’) plt.show() plt.Line2D()函数的作用是:创建一个新的Line2D对象,必要参数是线段的两个端点,可选参数包括所有介绍过的线条样式参数(如linewidth、linestyle以及color等),创建线段完成后,并不会显示该直线,若需要显示此对象需要使用plt.gca()。plt.gca()函数的作用是返回负责跟踪渲染内容的对象。调用plt.gca().add_line()就可以渲染创建的Line2Dd对象。使用plt.axis()函数可以修改图形比例,如不添加此函数的调用将导致绘制图形不能完整显示。 添加形状 我们已经学习了使用lines原语制作线条,但是在实际中,我们可能需要更多的形状,使用其他形状的方式与lines原语的相同。 import matplotlib.patches as patches import matplotlib.pyplot as plt 圆形shape = patches.Circle((0, 0), radius = 1., color = ‘m’) plt.gca().add_patch(shape) 四边形shape = patches.Rectangle((2.5, -.5), 2., 1., color = ‘c’) plt.gca().add_patch(shape) 椭圆形shape = patches.Ellipse((0, -2.), 2., 1., angle = 45., color = ‘y’) plt.gca().add_patch(shape) 花状框shape = patches.FancyBboxPatch((2.5, -2.5), 2., 1., boxstyle = ‘sawtooth’, color = ‘b’) plt.gca().add_patch(shape) 显示plt.grid(True, alpha=0.3) plt.axis(‘scaled’) plt.show() Tips:与使用lines原语一样,使用Matplotlib其它形状原语进行操作时,必须使用pyplot.axis()函数修改图形比例,否则将导致绘制图形不能完整显示。 无论显示哪种形状,其原理都是一样的。在Matplotlib中,形状被描述为名为patch的路径。matplotlib.patches模块中提供了几种形状的路径。与线端一样,仅创建路径并不会在屏幕上渲染它,必须明确使用渲染函数plt.gca()。 matplotlib.patches模块包含很多路径构造类,常用的主要包括: | 路径构造类名 | 描述 | | — | — | | Circle | 需要圆心坐标和半径作为参数 | | Rectangle | 需要四边形左下角的坐标和边长作为参数 | | Ellipse | 需要椭圆中心坐标和两轴半长作为参数 | | FancyBox | 这类似于花形框,需要可选参数boxstyle指定样式,可选值包括:“larrow”、“rarrow”、“round”、“round4”、“roundtooth”、"sawtooth"以及"square"等) | 自定义形状 除了预定义的形状外,我们还可以使用多边形定义任意形状。 使用多边形多边形的使用方法与上一部分中路径的使用方法类似: import numpy as np import matplotlib.patches as patches import matplotlib.pyplot as plt theta = np.linspace(0, 2 * np.pi, 8) points = np.vstack((np.cos(theta), np.sin(theta))).transpose() plt.gca().add_patch(patches.Polygon(points, color = ‘m’)) 自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。 深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前! 因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。 既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化! 由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新 如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注Python) 47b8a67243c1008edf79.png) 既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化! 由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新 如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注Python) ![]() |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |