matplotlib吧 关注:952贴子:426

介绍下Matplotlib及其创始人

只看楼主收藏回复

Matplotlib是John D. Hunter(1968.08.01-2012.08.28)攻读神经生物学博士学位期间编写的一个python数据可视化项目。
John于 2002 年构思Matplotlib,最初是作为 IPython 的一个补丁,用于通过 IPython 命令行的 gnuplot 实现交互式 MATLAB 风格的绘图。IPython 的创建者Fernando Perez当时正忙于完成博士学位,并告诉John他几个月都没有时间审查这个补丁。John 以此为线索,开始了自己的创作,Matplotlib 包诞生了,并于 2003 年发布了 0.1 版本。当它被采用为太空望远镜科学研究所(哈勃望远镜背后的人)的首选绘图包时,它得到了早期的推动,该研究所为Matplotlib的开发提供了财务支持,并极大地扩展了其能力。
(参考材料:Python Data Science Handbook by Jake VanderPlas)


IP属地:黑龙江来自Android客户端1楼2024-08-12 14:27回复
    Matplotlib各大版本发布时间
    --------------------------------------------
    1.0-1.5: 2010.07.06~2015.10.29
    2.0~2.2:2017.01.17~2018.03.06
    3.0~3.9: 2018.09.18~Now
    目前最新的版本是3.9,并且Maplotlib开发团队大约每6~8个月会发布一个小版本,建议可以使用最近发布的3个版本,以提高使用体验——目前是3.7/3.8/3.9。


    IP属地:黑龙江2楼2024-08-12 14:49
    收起回复
      2025-08-07 10:30:07
      广告
      不感兴趣
      开通SVIP免广告
      2013 年起,Scipy 每年举行可视化比赛:John Hunter Excellence in Plotting Competition,一是为了纪念 John Hunter 的贡献,二是为了强调数据可视化对科学进步的重要性,并展示开源软件的力量。
      John Hunter的家人为获奖者提供1000美元(一等奖)、750美元(二等奖)、500美元(三等奖)的现金奖励。
      但是JHEPC网站上显示这个项目似乎已经于2020年暂停了。
      下图是2020年JHEPC的一等奖,作者是Philip Brohan,图片对1903 年的尤利西斯风暴进行了重建,以评估气候变化的影响。


      IP属地:黑龙江3楼2024-08-13 11:21
      回复
        Matplotlib项目目前隶属于NumFOCUS基金会(John是创始人之一)。基金会年报显示2023年其获得了超过500万美元的捐款,赞助了包括Matplotlib,numpy, scipy,cupy, octave, jupyter, IPythonjulia, sympy, conda, pandas等著名项目。


        IP属地:黑龙江来自Android客户端4楼2024-08-14 09:35
        收起回复
          下面是matplotlib曾经使用过的logo




          IP属地:黑龙江5楼2024-08-15 08:38
          收起回复
            matplotlib的版权协议比较宽松,其类似PSF和BSD协议,总的来说,用户可以自由使用、编辑其代码,包括商用和闭源,但需要在发行过程中附带matplotlib的版权文件,且商用时不得借助matplotlib开发团队进行宣传。
            另外由于matplotlib需要维持这种宽松的协议,matplotlib的贡献者应该在开发时注意只引入使用BSD,MIT,PSF这类宽松协议的依赖。


            IP属地:黑龙江来自Android客户端6楼2024-08-16 22:26
            回复
              贴一下来自numfocus的2023年一些项目资助情况。


              IP属地:黑龙江来自Android客户端7楼2024-08-17 09:41
              回复
                matplotlib目前的
                首席开发人员应该是Michael Droettboom, 他于2007年参与到matplotlib项目中。Michael2002年在约翰霍普金斯大学拿到了计算机和音乐相关专业的硕士学位,随后曾长期就职于美国Space Telescope Science Institute(哈勃和韦伯望远镜的主管机构),后期也曾经到Mozilla公司(火狐浏览器)从事过在浏览器中集成Python等工作。目前Michael在GitHub上仍然非常活跃。
                下面是取自Michael博客的自我介绍:
                I'm a computer scientist and software engineer, specializing in imaging and data: sheet music, scientific visualization, astromony, biomedical data and software telemetry. Open source software and open science advocate.


                IP属地:黑龙江来自Android客户端8楼2024-08-18 00:29
                回复
                  2025-08-07 10:24:07
                  广告
                  不感兴趣
                  开通SVIP免广告
                  matplotlib目前是Scientific Python Ecosystem Coordination(SPEC)的核心项目,这个组织是一个由诸如IPython, Pandas,Numpy,Scipy这类广泛使用的科学领域python库组成的松散机构。SPEC的一个目的是建立协调平台,保证各数据库的兼容性,促进共同发展(避免不同的库开发同样的功能)。
                  目前该组织非常活跃,每周都有大量主题会议,并且很多会议是开放会议,会议日程可在其官网查询。


                  IP属地:黑龙江来自Android客户端9楼2024-08-19 08:08
                  回复
                    下面是matplotlib 3.10.0版本的依赖:
                    "contourpy >= 1.0.1", 在 matplotlib 中提供等高线绘制的支持。
                    "cycler >= 0.10", 帮助管理循环迭代图形属性,比如可以循环设置不同的颜色、线型等,使得在绘制多个图形元素时更加方便。
                    "fonttools >= 4.22.0", 处理字体相关的任务,确保 matplotlib 在绘制图形时能够正确使用各种字体进行标注和显示文本。
                    "kiwisolver >= 1.3.1", 用于解决约束优化问题的库,在 matplotlib 中可能用于确定图形布局和元素位置等方面。
                    "numpy >= 1.23", 提供强大的多维数组和数学函数支持
                    "packaging >= 20.0", 处理软件包的打包和分发相关的元数据和规范
                    "pillow >= 8", 用于图像处理,在 matplotlib 中可能用于处理导入的图像或者生成图像输出。
                    "pyparsing >= 2.3.1", 用于解析和处理文本,在 matplotlib 中可能用于解析配置文件或处理用户输入的特定格式的指令。
                    "python-dateutil >= 2.7", 提供强大的日期和时间处理功能,在 matplotlib 中可能用于处理与时间序列相关的绘图任务。
                    "importlib-resources >= 3.2.0; python_version < '3.10'", 在特定版本的 Python 中,用于管理和访问资源文件,确保 matplotlib 能够正确加载所需的资源。


                    IP属地:黑龙江11楼2024-08-21 07:42
                    回复
                      matplotlib的源码除了约1.5万行的c++代码(主要负责性能优化、后端包装,由pybind11实现跨语言)外,其余主要为约19万余行的Python代码(约5万行的测试代码),Python脚本文件约300个,单个文件约600行,其中行数最多的30个文件约6万行。和numpy, scipy一样,Python和Cpp源码由meson负责组织和打包为whl文件。


                      IP属地:黑龙江12楼2024-08-22 07:33
                      收起回复
                        Matplotlib 具有三层架构,从上到下依次为脚本层、艺术家层和后端层,上层知道如何与下层交互,而下层不知上层简单快速绘图一般在脚本层调用函数即可,精细控制图形则需要在艺术家层,普通用户基本不需要了解后端层。
                        一、脚本层-Scripting Layer
                        脚本层是简化与其他层协作任务的接口,对于科学家日常使用、数据可视化或探索交互而言是更好的选择。
                        二、艺术家层-Artist Layer
                        用于将 Matplotlib 与应用服务器集成,涉及线条、形状、轴和文本等事物。该层的子类定义了可见性、标签以及定义可绘制区域的剪辑框等内容。其可分为原、器皿等子类。
                        三、后端层-Backends Layer
                        作为显示绘图到输出设备的最底层,侧重于为工具包提供熟悉的界面,并渲染艺术家层的基元和容器,还有助于在 GUI 中开发交互式绘图。

                        (from TAE)


                        IP属地:黑龙江13楼2024-08-22 23:58
                        回复
                          下面是matplotlib项目的官网主页、下载安装指南页、文档、源码、bug追踪、论坛和捐助页面信息


                          IP属地:黑龙江14楼2024-08-24 08:39
                          回复
                            话说有fastplotlib的消息了吗


                            IP属地:湖南来自Android客户端15楼2024-10-16 19:34
                            收起回复
                              2025-08-07 10:18:07
                              广告
                              不感兴趣
                              开通SVIP免广告
                              这个吧有点冷啊,我以为mpl的用户也算比较多的。
                              其实mpl搭配着pandas、numpy这些用着还是挺方便的,对于python使用者学习成本相对小,功能未必有R强大但是语法上更讨喜一点。
                              mpl有个部分我很喜欢,就是他原生地支持LaTeX,不需要额外安装什么插件。但是mpl的绘图速度和交互性算是一个软肋吧。


                              IP属地:湖南来自Android客户端16楼2024-10-16 19:50
                              收起回复