• 自定义 matplotlib
    • 使用样式表自定义绘图
    • 定义你自己的样式
    • 组合样式
    • 临时样式

    自定义 matplotlib

    原文:Customizing matplotlib

    译者:飞龙

    协议:CC BY-NC-SA 4.0

    使用样式表自定义绘图

    style包为易于切换的绘图『样式』增加了支持,它们与matplotlibrc文件参数相同。

    有一些预定义样式由matplotlib提供。 例如,有一个名为『ggplot』的预定义样式,它模拟ggplot(R 的一种流行的绘图软件包)的美学。 为了使用此样式,只需添加:

    1. >>> import matplotlib.pyplot as plt
    2. >>> plt.style.use('ggplot')

    为了列出所有可用样式,使用:

    1. >>> print(plt.style.available)

    定义你自己的样式

    你可以创建自定义样式,并通过以样式表的路径或 URL 调用style.use来使用它们。 或者,如果将<style-name> mplstyle文件添加到mpl_configdir /stylelib中,你可以通过调用style.use(<style-name>)重复使用自定义样式表。 默认情况下mpl_configdir应该是~/.config/matplotlib,但你可以使用matplotlib.get_configdir()检查你的位置,你可能需要创建这个目录。 请注意,如果样式具有相同的名称,mpl_configdir/stylelib中的自定义样式表将覆盖由matplotlib定义的样式表。

    例如,你可能想要使用以下命令创建mpl_configdir/stylelib/presentation.mplstyle

    1. axes.titlesize : 24
    2. axes.labelsize : 20
    3. lines.linewidth : 3
    4. lines.markersize : 10
    5. xtick.labelsize : 16
    6. ytick.labelsize : 16

    然后,当你想要将一个为纸张设计的地图迁移到演示文档中时,你可以添加:

    1. >>> import matplotlib.pyplot as plt
    2. >>> plt.style.use('presentation')

    组合样式

    样式表为组合在一起而设计。 因此,你可以拥有一个自定义颜色的样式表和一个单独的样式表,用于更改演示文档的元素大小。 这些样式可以通过传递样式列表轻松组合:

    1. >>> import matplotlib.pyplot as plt
    2. >>> plt.style.use(['dark_background', 'presentation'])

    请注意,右侧的样式将覆盖已经由左侧样式定义的值。

    临时样式

    如果只想对特定的代码块使用样式,但不想更改全局样式,那么样式包提供了一个上下文管理器,用于将更改限制于特定范围。 要隔离你的样式更改,你可以编写以下内容:

    1. >>> import numpy as np
    2. >>> import matplotlib.pyplot as plt
    3. >>>
    4. >>> with plt.style.context(('dark_background')):
    5. >>> plt.plot(np.sin(np.linspace(0, 2 * np.pi)), 'r-o')
    6. >>>
    7. >>> # Some plotting code with the default style
    8. >>>
    9. >>> plt.show()