Skip to main content
Ctrl+K
Matplotlib 3.10.0.dev759+ge90952ffac 文档 - Home
  • Plot types
  • User guide
  • Tutorials
  • Examples
  • Reference
  • Contribute
  • Releases
  • Gitter
  • Discourse
  • GitHub
  • Twitter
  • Plot types
  • User guide
  • Tutorials
  • Examples
  • Reference
  • Contribute
  • Releases
  • Gitter
  • Discourse
  • GitHub
  • Twitter

Section Navigation

  • 贡献指南
  • 设置 Matplotlib 进行开发
  • 开发工作流程
  • 故障排除
  • 编码指南
  • API 指南
  • 测试
  • 编写文档
  • 文档风格指南
  • 标记指南
  • Bug 分类和问题管理
  • 拉取请求指南
  • 发布指南
  • 社区管理指南
  • 依赖版本策略
  • Matplotlib 增强提案
    • MEP 模板
    • MEP8: PEP8
    • MEP9: 全局交互管理器
    • MEP10: 文档字符串一致性
    • MEP11: 第三方依赖
    • MEP12: 改进图库和示例
    • MEP13: 使用属性为艺术家
    • MEP14: 文本处理
    • MEP15: 当仅对一个轴指定限制时,修复轴的自动缩放
    • MEP19: 持续集成
    • MEP21: 颜色和cm重构
    • MEP22: 工具栏重写
    • MEP23: 每个GUI窗口的多张图
    • MEP24: 极坐标图中的负半径
    • MEP25: 序列化
    • MEP26: 艺术家风格
    • MEP27: 将 pyplot 与后端解耦
    • MEP28: 从 Axes.boxplot 中移除复杂性
    • MEP29: 文本轻量标记
  • 贡献
  • Matplotlib 增强提案
  • MEP12: 改进图库和示例

MEP12: 改进图库和示例#

  • 状态

  • 分支和拉取请求

  • 摘要

  • 详细描述

  • 实现

    • 画廊部分

    • 清理指南

      • 额外建议

  • 向后兼容性

  • 替代方案

    • 标签

状态#

进展

在1.3版本中添加了初始更改。图库的转换正在进行中。2015年9月29日 - 最后一个导入 pylab 的 pylab_examples 已转换为使用 matplotlib.pyplot 和 numpy。

分支和拉取请求#

#1623, #1924, #2181

PR #2474 展示了一个示例被清理并移动到适当的部分。

摘要#

重新组织 matplotlib 绘图画廊将大大简化画廊的导航。此外,示例应进行清理和简化以提高清晰度。

详细描述#

matplotlib 画廊最近被设置为将示例分成多个部分。如该 PR [1] 中所讨论的,当前的示例部分(api、pylab_examples)对用户来说并不是非常有用:画廊中的新部分将有助于用户找到相关的示例。

这些部分还将指导示例的清理:最初,所有当前示例将保持不变,并列在其当前目录下。随着时间的推移,这些示例可以被清理并移动到新部分之一。

此过程允许用户轻松识别需要清理的示例;即 api 和 pylab_examples 目录中的任何内容。

实现#

  1. 创建新的图库部分。 [完成]

  2. 清理示例并将它们移动到新的图库部分(在许多PR的过程中,并在许多用户/开发者的帮助下)。[进行中]

画廊部分#

章节的命名至关重要,并将指导清理工作。当前的章节有:

  • 线条、条形图和标记(或多或少的一维数据)

  • 形状和集合

  • 统计图表

  • 图像、轮廓和场

  • 饼图和极坐标图:圆形事物

  • 颜色

  • 文本、标签和注释

  • 刻度和脊线

  • 子图、坐标轴和图形

  • 特殊图表(例如,桑基图、雷达图、龙卷风图)

  • 展示(经过调整以达到出版质量的图表)

  • 工具箱的独立章节(已存在:'mplot3d', 'axes_grid', 'units', 'widgets')

这些名称当然可以讨论。随着这些部分的扩展,我们应该重新评估它们并在必要时进行拆分。

清理指南#

画廊中 api 和 pylab_examples 部分的当前示例将保留在这些目录中,直到它们被清理。清理后,它们将被移动到上述新的画廊部分之一。"清理"应包括:

  • sphinx-gallery 文档字符串: 示例的标题和描述格式如下,位于示例的顶部:

    """
    ===============================
    Colormaps alter your perception
    ===============================
    
    Here I plot the function
    
    .. math:: f(x, y) = \sin(x) + \cos(y)
    
    with different colormaps. Look at how colormaps alter your perception!
    """
    
  • PEP8 清理(强烈推荐运行 flake8 或类似的检查器)

  • 注释掉的代码应该被删除。

  • 将 pylab 接口的使用替换为 pyplot`(+ `numpy 等)。参见 c25ef1e。

  • 移除 shebang 行,例如:

    #!/usr/bin/env python
    
  • 使用一致的导入。特别是:

    import numpy as np
    
    import matplotlib.pyplot as plt
    

    避免从这些模块中导入特定函数(例如 from numpy import sin)

  • 每个示例应专注于一个特定的功能(不包括 showcase 示例,这些示例将展示更多“精炼”的图表)。与此功能无关的调整应被移除。参见 f7b2217, e57b5fc, 和 1458aa8。

pylab 的使用应在专门的帮助页面上进行演示/讨论,而不是在图库示例中。

注意: 当移动一个现有的示例时,你应该搜索对该示例的引用。例如,axes.py 和 pyplot.py 的API文档可能会使用这些示例来生成图表。使用你喜欢的搜索工具(例如,grep, ack, grin, pss)来搜索matplotlib包。参见 2dc9a46 和 aa6b410。

额外建议#

  • 在示例和使用的方法/对象的API文档之间提供链接(双向)。(问题 #2222)

  • 优先使用 plt.subplots``(注意末尾的“s”)而不是 ``plt.subplot。

  • 重命名示例以明确其目的。例如,最基本的 imshow 演示可能是 imshow_demo.py,而展示不同插值设置的演示将是 imshow_demo_interpolation.py (不是 imshow_demo2.py)。

  • 将试图做太多的示例分开。参见 5099675 和 fc2ab07。

  • 删除那些没有展示新内容的示例。

  • 一些示例展示了单元测试的深奥特性。这些调整应从图库中移出,移至包根目录下``unit``目录中的一个示例中。

  • 添加图表标题以明确示例的意图。参见 bd2b13c

向后兼容性#

每个 Matplotlib 版本的网站都很容易访问,因此想要参考旧示例的用户仍然可以这样做。

替代方案#

标签#

标记示例也将帮助用户搜索示例库。尽管标签对于有特定目标的用户来说是一个巨大的胜利,但绘图库仍将是这些示例的入口点,而章节确实可以帮助用户浏览库。因此,标签是对这种重组的补充。

[1]

matplotlib/matplotlib#714

On this page
  • 状态
  • 分支和拉取请求
  • 摘要
  • 详细描述
  • 实现
    • 画廊部分
    • 清理指南
      • 额外建议
  • 向后兼容性
  • 替代方案
    • 标签

© Copyright 2002–2012 John Hunter, Darren Dale, Eric Firing, Michael Droettboom and the Matplotlib development team; 2012–2024 The Matplotlib development team.

由 Sphinx 8.0.2创建。

Built from v3.9.2-622-gb01462c9ac-dirty.

Built with the PyData Sphinx Theme 0.15.4.