侯体宗的博客
  • 首页
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

python+matplotlib绘制简单的海豚(顶点和节点的操作)

Python  /  管理员 发布于 7年前   227

海豚

本文例子主要展示了如何使用补丁、路径和转换类绘制和操作给定的顶点和节点的形状。

测试可用。

import matplotlib.cm as cmimport matplotlib.pyplot as pltfrom matplotlib.patches import Circle, PathPatchfrom matplotlib.path import Pathfrom matplotlib.transforms import Affine2Dimport numpy as np# Fixing random state for reproducibilitynp.random.seed(19680801)r = np.random.rand(50)t = np.random.rand(50) * np.pi * 2.0x = r * np.cos(t)y = r * np.sin(t)fig, ax = plt.subplots(figsize=(6, 6))circle = Circle((0, 0), 1, facecolor='none',        edgecolor=(0, 0.8, 0.8), linewidth=3, alpha=0.5)ax.add_patch(circle)im = plt.imshow(np.random.random((100, 100)),        origin='lower', cmap=cm.winter,        interpolation='spline36',        extent=([-1, 1, -1, 1]))im.set_clip_path(circle)plt.plot(x, y, 'o', color=(0.9, 0.9, 1.0), alpha=0.8)# Dolphin from OpenClipart library by Andy Fitzsimon#    <cc:License rdf:about="http://web.resource.org/cc/PublicDomain">#     <cc:permits rdf:resource="http://web.resource.org/cc/Reproduction"/>#     <cc:permits rdf:resource="http://web.resource.org/cc/Distribution"/>#     <cc:permits rdf:resource="http://web.resource.org/cc/DerivativeWorks"/>#    </cc:License>dolphin = """M -0.59739425,160.18173 C -0.62740401,160.18885 -0.57867129,160.11183-0.57867129,160.11183 C -0.57867129,160.11183 -0.5438361,159.89315-0.39514638,159.81496 C -0.24645668,159.73678 -0.18316813,159.71981-0.18316813,159.71981 C -0.18316813,159.71981 -0.10322971,159.58124-0.057804323,159.58725 C -0.029723983,159.58913 -0.061841603,159.60356-0.071265813,159.62815 C -0.080250183,159.65325 -0.082918513,159.70554-0.061841203,159.71248 C -0.040763903,159.7194 -0.0066711426,159.710910.077336307,159.73612 C 0.16879567,159.76377 0.28380306,159.864480.31516668,159.91533 C 0.3465303,159.96618 0.5011127,160.17710.5011127,160.1771 C 0.63668998,160.19238 0.67763022,160.312590.66556395,160.32668 C 0.65339985,160.34212 0.66350443,160.336420.64907098,160.33088 C 0.63463742,160.32533 0.61309688,160.2970.5789627,160.29339 C 0.54348657,160.28968 0.52329693,160.276740.50728856,160.27737 C 0.49060916,160.27795 0.48965803,160.315650.46114204,160.33673 C 0.43329696,160.35786 0.4570711,160.398710.43309565,160.40685 C 0.4105108,160.41442 0.39416631,160.330270.3954995,160.2935 C 0.39683269,160.25672 0.43807996,160.215220.44567915,160.19734 C 0.45327833,160.17946 0.27946869,159.9424-0.061852613,159.99845 C -0.083965233,160.0427 -0.26176109,160.06683-0.26176109,160.06683 C -0.30127962,160.07028 -0.21167141,160.09731-0.24649368,160.1011 C -0.32642366,160.11569 -0.34521187,160.06895-0.40622293,160.0819 C -0.467234,160.09485 -0.56738444,160.17461-0.59739425,160.18173"""vertices = []codes = []parts = dolphin.split()i = 0code_map = {  'M': (Path.MOVETO, 1),  'C': (Path.CURVE4, 3),  'L': (Path.LINETO, 1)}while i < len(parts):  code = parts[i]  path_code, npoints = code_map[code]  codes.extend([path_code] * npoints)  vertices.extend([[float(x) for x in y.split(',')] for y in           parts[i + 1:i + npoints + 1]])  i += npoints + 1vertices = np.array(vertices, float)vertices[:, 1] -= 160dolphin_path = Path(vertices, codes)dolphin_patch = PathPatch(dolphin_path, facecolor=(0.6, 0.6, 0.6), edgecolor=(0.0, 0.0, 0.0))ax.add_patch(dolphin_patch)vertices = Affine2D().rotate_deg(60).transform(vertices)dolphin_path2 = Path(vertices, codes)dolphin_patch2 = PathPatch(dolphin_path2, facecolor=(0.5, 0.5, 0.5),  edgecolor=(0.0, 0.0, 0.0))ax.add_patch(dolphin_patch2)plt.show()

效果如下:

总结

以上就是本文关于python+matplotlib绘制简单的海豚(顶点和节点的操作)的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!


  • 上一条:
    Python中字典的浅拷贝与深拷贝用法实例分析
    下一条:
    Python实现进程同步和通信的方法
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • 在python语言中Flask框架的学习及简单功能示例(0个评论)
    • 在Python语言中实现GUI全屏倒计时代码示例(0个评论)
    • Python + zipfile库实现zip文件解压自动化脚本示例(0个评论)
    • python爬虫BeautifulSoup快速抓取网站图片(1个评论)
    • vscode 配置 python3开发环境的方法(0个评论)
    • 近期文章
    • 在windows10中升级go版本至1.24后LiteIDE的Ctrl+左击无法跳转问题解决方案(0个评论)
    • 智能合约Solidity学习CryptoZombie第四课:僵尸作战系统(0个评论)
    • 智能合约Solidity学习CryptoZombie第三课:组建僵尸军队(高级Solidity理论)(0个评论)
    • 智能合约Solidity学习CryptoZombie第二课:让你的僵尸猎食(0个评论)
    • 智能合约Solidity学习CryptoZombie第一课:生成一只你的僵尸(0个评论)
    • 在go中实现一个常用的先进先出的缓存淘汰算法示例代码(0个评论)
    • 在go+gin中使用"github.com/skip2/go-qrcode"实现url转二维码功能(0个评论)
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(95个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2016-10
    • 2016-11
    • 2018-04
    • 2020-03
    • 2020-04
    • 2020-05
    • 2020-06
    • 2022-01
    • 2023-07
    • 2023-10
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客