使用 matplotlibrc 控制单个轴的存在

Control existence of individual axes with matplotlibrc

我有一个 matplotlibrc 文件:

axes.color_cycle    : 003A6F, BFBFBF, BFBFBF, BFBFBF, BFBFBF

..我用它来生成一个通用图:

import numpy as np
import matplotlib as mpl
from matplotlib import pyplot as plt

def makeplot(n=4):
    for i in range(n):
        plt.plot(np.sin(np.linspace(0, (i+1) * np.pi)),zorder=n-i)
    plt.title("Title")
    plt.ylim(-1.25,1.25)
    plt.show()

def apply_format(fmt, plot_function, params={}):
    with plt.style.context(fmt):
        plot_function(**params)


apply_format('./myformat.mplstyle',makeplot,{'n':3})

我的问题是:

  1. 如何在 matplotlibrc 文件中指定只显示 leftlower 轴线?
  2. 我怎么知道有哪些 matplotlibrc 选项可用? (例如 axes.color_cycle : b, r

1) 不确定如何在 matplotlibrc 文件中指定它。浏览文档后,似乎不可能(找不到对 top/bottom ticks/axes 的任何引用)。但是,如果您只想通过删除 top/bottom 轴线来满足仅显示 left/lower 轴线的原始功能,则可以使用 tick_params().

def makeplot(n=4):
    for i in range(n):
        plt.plot(np.sin(np.linspace(0, (i+1) * np.pi)),zorder=n-i)
    plt.title("Title")
    plt.ylim(-1.25,1.25)
    plt.tick_params(axis='x', top='off')
    plt.tick_params(axis='y', right='off')
    plt.show()

2) 见documentation!请注意 axes.color_cycle 已弃用(请改用 axes.prop_cycle)。