matplotlib.sphinxext.plot_directive#

用于在Sphinx文档中包含Matplotlib图表的指令#

这是一个提供 reStructuredText 指令 .. plot:: 的 Sphinx 扩展,用于在 Sphinx 文档中包含图表。

在HTML输出中,.. plot:: 将包含一个带有高分辨率 .png 和 .pdf 链接的 .png 文件。在LaTeX输出中,它将包含一个 .pdf 文件。

绘图内容可以通过以下三种方式之一定义:

  1. 一个源文件的路径 作为指令的参数:

    .. plot:: path/to/plot.py
    

    当给定源文件的路径时,指令的内容可以选择包含图表的标题:

    .. plot:: path/to/plot.py
    
       The plot caption.
    

    此外,可以在导入模块后立即指定要调用的函数名称(不带参数):

    .. plot:: path/to/plot.py plot_function1
    
  2. 作为指令的 内联内容 包含:

    .. plot::
    
       import matplotlib.pyplot as plt
       plt.plot([1, 2, 3], [4, 5, 6])
       plt.title("A plotting exammple")
    
  3. 使用 doctest 语法:

    .. plot::
    
       A plotting example:
       >>> import matplotlib.pyplot as plt
       >>> plt.plot([1, 2, 3], [4, 5, 6])
    

选项#

.. plot:: 指令支持以下选项:

:format:{'python', 'doctest'}

输入的格式。如果未设置,格式将自动检测。

:include-source:布尔值

是否显示源代码。默认值可以通过 conf.py 中的 plot_include_source 变量更改(该变量本身默认为 False)。

:show-source-link:布尔值

是否在HTML中显示指向源代码的链接。可以通过 conf.py 中的 plot_html_show_source_link 变量更改默认设置(该变量本身默认为 True)。

:context:布尔值或字符串

如果提供,代码将在所有之前指定了 :context: 选项的绘图指令的上下文中运行。这仅适用于内联代码绘图指令,不适用于从文件运行的指令。如果指定了 :context: reset 选项,上下文将为此及未来的绘图重置,并且在运行代码之前关闭之前的图形。:context: close-figs 保持上下文,但在运行代码之前关闭之前的图形。

:nofigs:布尔值

如果指定,代码块将被运行,但不会插入任何图形。这通常与 :context: 选项一起使用。

:caption:str

如果指定,选项的参数将用作图形的标题。当图形从文件生成时,这将覆盖内容中给出的标题。

此外,此指令支持 图像指令 的所有选项,除了 :target:``(因为绘图将添加自己的目标)。这些包括 ``:alt::height::width::scale::align::class:

配置选项#

绘图指令具有以下配置选项:

plot_include_source

include-source 选项的默认值(默认:False)。

plot_html_show_source_link

是否在HTML中显示指向源代码的链接(默认:True)。

plot_pre_code

在每个图表之前应执行的代码。如果为 None(默认值),它将默认为包含以下内容的字符串:

import numpy as np
from matplotlib import pyplot as plt
plot_basedir

基础目录,plot:: 文件名相对于此目录。如果为 None 或空(默认),文件名相对于包含指令的文件所在的目录。

plot_formats

要生成的文件格式(默认:['png', 'hires.png', 'pdf'])。元组列表或字符串列表:

[(suffix, dpi), suffix, ...]

这些参数决定了文件格式和DPI。对于那些省略了DPI的条目,会选择合理的默认值。当通过sphinx_build从命令行传递时,列表应以suffix:dpi,suffix:dpi,...的形式传递。

plot_html_show_formats

是否在HTML中显示文件链接(默认:True)。

plot_rcparams

一个包含任何非标准 rcParams 的字典,应在每次绘图前应用(默认:{})。

plot_apply_rcparams

默认情况下,当 :context: 选项未在绘图指令中使用时,会应用 rcParams。如果设置此配置选项,则会覆盖此行为,并在每次绘图前应用 rcParams。

plot_working_directory

默认情况下,工作目录将被更改为示例所在的目录,因此代码可以访问其数据文件(如果有的话)。此外,其路径将被添加到 sys.path 中,以便它可以导入任何与其并列的帮助模块。此配置选项可用于指定一个中心目录(也会添加到 sys.path 中),其中包含所有代码的数据文件和帮助模块。

plot_template

提供一个用于准备 restructured text 的自定义模板。

plot_srcset

允许使用srcset图像选项来实现响应式图像分辨率。字符串列表,包含乘法因子后跟一个“x”。例如:["2.0x", "1.5x"]。"2.0x"将创建一个png图像,其分辨率为plot_formats中的默认“png”分辨率的两倍。如果指定了plot_srcset,plot指令将在生成的中间rst文件中使用:doc:`/api/sphinxext_figmpl_directive_api`(而不是通常的figure指令)。plot_srcset选项与*singlehtml*构建不兼容,并且会引发错误。

工作原理说明#

plot 指令运行它所给出的代码,无论是在源文件中还是在指令下的代码。创建的图形(如果有)保存在 sphinx 构建目录下的一个名为 plot_directive 的子目录中。然后,它创建一个中间的 rst 文件,该文件调用 .. figure: 指令(如果正在使用 plot_srcset,则调用 .. figmpl:: 指令),并包含指向 plot_directive 目录中 *.png 文件的链接。这些转换可以通过更改 plot_template 来自定义。有关在 TEMPLATETEMPLATE_SRCSET 中定义的模板,请参阅 matplotlib.sphinxext.plot_directive 的源代码。

class matplotlib.sphinxext.plot_directive.PlotDirective(name, arguments, options, content, lineno, content_offset, block_text, state, state_machine)[源代码][源代码]#

.. plot:: 指令,如模块的文档字符串中所述。

final_argument_whitespace = False#

最终参数可以包含空白字符吗?

has_content = True#

指令可以有内容吗?

option_spec = {'align': <function Image.align>, 'alt': <function unchanged>, 'caption': <function unchanged>, 'class': <function class_option>, 'context': <function _option_context>, 'format': <function _option_format>, 'height': <function length_or_unitless>, 'include-source': <function _option_boolean>, 'nofigs': <function flag>, 'scale': <function nonnegative_int>, 'show-source-link': <function _option_boolean>, 'width': <function length_or_percentage_or_unitless>}#

选项名称到验证器函数的映射。

optional_arguments = 2#

在必需参数之后的可选参数数量。

required_arguments = 0#

所需指令参数的数量。

run()[源代码][源代码]#

运行绘图指令。

exception matplotlib.sphinxext.plot_directive.PlotError[源代码][源代码]#
matplotlib.sphinxext.plot_directive.mark_plot_labels(app, document)[源代码][源代码]#

为了使图表可引用,我们需要将引用从“htmlonly”(或“latexonly”)节点移动到实际的图表节点本身。

matplotlib.sphinxext.plot_directive.out_of_date(original, derived, includes=None)[源代码][源代码]#

返回 derived 相对于 original 或使用 RST include 指令包含在其中的任何 RST 文件是否过时(includes)。derivedoriginal 是完整路径,而 includes 是可选的完整路径列表,这些路径可能已包含在 original 中。

matplotlib.sphinxext.plot_directive.render_figures(code, code_path, output_dir, output_base, context, function_name, config, context_reset=False, close_figs=False, code_includes=None)[源代码][源代码]#

运行一个 pyplot 脚本并将图像保存到 output_dir 中。

将图像保存在 output_dir 下,文件名由 output_base 派生。