Python 将maplotlib参数自动保存到mplstyles文件中

Python 将maplotlib参数自动保存到mplstyles文件中,python,matplotlib,plot,Python,Matplotlib,Plot,创建自定义matplotlib样式时,可以通过打印plt.rcParams来访问当前样式的相关参数。如何将这些自动转换为mplstyles文件 import matplotlib.pyplot as plt plt.rcParams 印刷品: RcParams({'_internal.classic_mode': False, 'agg.path.chunksize': 0, 'animation.avconv_args': [], 'animation.a

创建自定义matplotlib样式时,可以通过打印
plt.rcParams
来访问当前样式的相关参数。如何将这些自动转换为mplstyles文件

import matplotlib.pyplot as plt
plt.rcParams
印刷品:

RcParams({'_internal.classic_mode': False,
      'agg.path.chunksize': 0,
      'animation.avconv_args': [],
      'animation.avconv_path': 'avconv',
      'animation.bitrate': -1,
      'animation.codec': 'h264',
      'animation.convert_args': [],
      'animation.convert_path': 'convert',
      'animation.embed_limit': 20.0,
      'animation.ffmpeg_args': [],
      'animation.ffmpeg_path': 'ffmpeg',
      'animation.frame_format': 'png',
      'animation.html': 'none',
      'animation.html_args': [],
      'animation.writer': 'ffmpeg',
      'axes.autolimit_mode': 'data',
      'axes.axisbelow': True,
      'axes.edgecolor': u'.15',
      'axes.facecolor': u'white',
      'axes.formatter.limits': [-7, 7],
      'axes.formatter.min_exponent': 0,
      'axes.formatter.offset_threshold': 4,
      'axes.formatter.use_locale': False,
      'axes.formatter.use_mathtext': False,
      'axes.formatter.useoffset': True,
      'axes.grid': True,
      'axes.grid.axis': 'both',
      'axes.grid.which': 'major',
      'axes.hold': None,
      'axes.labelcolor': u'.15',
      'axes.labelpad': 4.0,
      'axes.labelsize': 'medium',
      'axes.labelweight': 'normal',
      'axes.linewidth': 1.0,
      'axes.prop_cycle': cycler('color', ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2', '#7f7f7f', '#bcbd22', '#17becf']),
      'axes.spines.bottom': True,
      'axes.spines.left': True,
      'axes.spines.right': True,
      'axes.spines.top': True,
      'axes.titlepad': 6.0,
      'axes.titlesize': 'large',
      'axes.titleweight': 'normal',
      'axes.unicode_minus': True,
      'axes.xmargin': 0.05,
      'axes.ymargin': 0.05,
      'axes3d.grid': True,
      'backend': 'module://ipykernel.pylab.backend_inline',
      'backend.qt4': None,
      'backend.qt5': None,
      'backend_fallback': True,
      'boxplot.bootstrap': None,
      'boxplot.boxprops.color': 'k',
      'boxplot.boxprops.linestyle': '-',
      'boxplot.boxprops.linewidth': 1.0,
      'boxplot.capprops.color': 'k',
      'boxplot.capprops.linestyle': '-',
      'boxplot.capprops.linewidth': 1.0,
      'boxplot.flierprops.color': 'k',
      'boxplot.flierprops.linestyle': 'none',
      'boxplot.flierprops.linewidth': 1.0,
      'boxplot.flierprops.marker': 'o',
      'boxplot.flierprops.markeredgecolor': 'k',
      'boxplot.flierprops.markerfacecolor': 'none',
      'boxplot.flierprops.markersize': 6.0,
      'boxplot.meanline': False,
      'boxplot.meanprops.color': 'C2',
      'boxplot.meanprops.linestyle': '--',
      'boxplot.meanprops.linewidth': 1.0,
      'boxplot.meanprops.marker': '^',
      'boxplot.meanprops.markeredgecolor': 'C2',
      'boxplot.meanprops.markerfacecolor': 'C2',
      'boxplot.meanprops.markersize': 6.0,
      'boxplot.medianprops.color': 'C1',
      'boxplot.medianprops.linestyle': '-',
      'boxplot.medianprops.linewidth': 1.0,
      'boxplot.notch': False,
      'boxplot.patchartist': False,
      'boxplot.showbox': True,
      'boxplot.showcaps': True,
      'boxplot.showfliers': True,
      'boxplot.showmeans': False,
      'boxplot.vertical': True,
      'boxplot.whiskerprops.color': 'k',
      'boxplot.whiskerprops.linestyle': '-',
      'boxplot.whiskerprops.linewidth': 1.0,
      'boxplot.whiskers': 1.5,
      'contour.corner_mask': True,
      'contour.negative_linestyle': 'dashed',
      'datapath': '/home/codepan1/virtual_env/local/lib/python2.7/site-packages/matplotlib/mpl-data',
      'date.autoformatter.day': '%Y-%m-%d',
      'date.autoformatter.hour': '%m-%d %H',
      'date.autoformatter.microsecond': '%M:%S.%f',
      'date.autoformatter.minute': '%d %H:%M',
      'date.autoformatter.month': '%Y-%m',
      'date.autoformatter.second': '%H:%M:%S',
      'date.autoformatter.year': '%Y',
      'docstring.hardcopy': False,
      'errorbar.capsize': 0.0,
      'examples.directory': '',
      'figure.autolayout': False,
      'figure.constrained_layout.h_pad': 0.04167,
      'figure.constrained_layout.hspace': 0.02,
      'figure.constrained_layout.use': False,
      'figure.constrained_layout.w_pad': 0.04167,
      'figure.constrained_layout.wspace': 0.02,
      'figure.dpi': 72.0,
      'figure.edgecolor': (1, 1, 1, 0),
      'figure.facecolor': (1, 1, 1, 0),
      'figure.figsize': [6.0, 4.0],
      'figure.frameon': True,
      'figure.max_open_warning': 20,
      'figure.subplot.bottom': 0.125,
      'figure.subplot.hspace': 0.2,
      'figure.subplot.left': 0.125,
      'figure.subplot.right': 0.9,
      'figure.subplot.top': 0.88,
      'figure.subplot.wspace': 0.2,
      'figure.titlesize': 'large',
      'figure.titleweight': 'normal',
      'font.cursive': ['Apple Chancery',
                       'Textile',
                       'Zapf Chancery',
                       'Sand',
                       'Script MT',
                       'Felipa',
                       'cursive'],
      'font.family': ['Quicksand'],
      'font.fantasy': ['Comic Sans MS',
                       'Chicago',
                       'Charcoal',
                       'ImpactWestern',
                       'Humor Sans',
                       'xkcd',
                       'fantasy'],
      'font.monospace': ['DejaVu Sans Mono',
                         'Bitstream Vera Sans Mono',
                         'Computer Modern Typewriter',
                         'Andale Mono',
                         'Nimbus Mono L',
                         'Courier New',
                         'Courier',
                         'Fixed',
                         'Terminal',
                         'monospace'],
      'font.sans-serif': ['Arial',
                          'Liberation Sans',
                          'DejaVu Sans',
                          'Bitstream Vera Sans',
                          'sans-serif'],
      'font.serif': ['DejaVu Serif',
                     'Bitstream Vera Serif',
                     'Computer Modern Roman',
                     'New Century Schoolbook',
                     'Century Schoolbook L',
                     'Utopia',
                     'ITC Bookman',
                     'Bookman',
                     'Nimbus Roman No9 L',
                     'Times New Roman',
                     'Times',
                     'Palatino',
                     'Charter',
                     'serif'],
      'font.size': 10.0,
      'font.stretch': 'normal',
      'font.style': 'normal',
      'font.variant': 'normal',
      'font.weight': 'bold',
      'grid.alpha': 1.0,
      'grid.color': u'.8',
      'grid.linestyle': '-',
      'grid.linewidth': 0.8,
      'hatch.color': 'k',
      'hatch.linewidth': 1.0,
      'hist.bins': 10,
      'image.aspect': 'equal',
      'image.cmap': u'Greys',
      'image.composite_image': True,
      'image.interpolation': 'nearest',
      'image.lut': 256,
      'image.origin': 'upper',
      'image.resample': True,
      'interactive': True,
      'keymap.all_axes': ['a'],
      'keymap.back': ['left', 'c', 'backspace'],
      'keymap.forward': ['right', 'v'],
      'keymap.fullscreen': ['f', 'ctrl+f'],
      'keymap.grid': ['g'],
      'keymap.grid_minor': ['G'],
      'keymap.home': ['h', 'r', 'home'],
      'keymap.pan': ['p'],
      'keymap.quit': ['ctrl+w', 'cmd+w', 'q'],
      'keymap.quit_all': ['W', 'cmd+W', 'Q'],
      'keymap.save': ['s', 'ctrl+s'],
      'keymap.xscale': ['k', 'L'],
      'keymap.yscale': ['l'],
      'keymap.zoom': ['o'],
      'legend.borderaxespad': 0.5,
      'legend.borderpad': 0.4,
      'legend.columnspacing': 2.0,
      'legend.edgecolor': '0.8',
      'legend.facecolor': 'inherit',
      'legend.fancybox': True,
      'legend.fontsize': 'medium',
      'legend.framealpha': 0.8,
      'legend.frameon': False,
      'legend.handleheight': 0.7,
      'legend.handlelength': 2.0,
      'legend.handletextpad': 0.8,
      'legend.labelspacing': 0.5,
      'legend.loc': 'best',
      'legend.markerscale': 1.0,
      'legend.numpoints': 1,
      'legend.scatterpoints': 1,
      'legend.shadow': False,
      'lines.antialiased': True,
      'lines.color': 'C0',
      'lines.dash_capstyle': 'butt',
      'lines.dash_joinstyle': 'round',
      'lines.dashdot_pattern': [6.4, 1.6, 1.0, 1.6],
      'lines.dashed_pattern': [3.7, 1.6],
      'lines.dotted_pattern': [1.0, 1.65],
      'lines.linestyle': '-',
      'lines.linewidth': 1.5,
      'lines.marker': 'None',
      'lines.markeredgewidth': 1.0,
      'lines.markersize': 50.0,
      'lines.scale_dashes': True,
      'lines.solid_capstyle': 'round',
      'lines.solid_joinstyle': 'round',
      'markers.fillstyle': 'full',
      'mathtext.bf': 'sans:bold',
      'mathtext.cal': 'cursive',
      'mathtext.default': 'it',
      'mathtext.fallback_to_cm': True,
      'mathtext.fontset': 'dejavusans',
      'mathtext.it': 'sans:italic',
      'mathtext.rm': 'sans',
      'mathtext.sf': 'sans',
      'mathtext.tt': 'monospace',
      'patch.antialiased': True,
      'patch.edgecolor': 'k',
      'patch.facecolor': 'C0',
      'patch.force_edgecolor': False,
      'patch.linewidth': 1.0,
      'path.effects': [],
      'path.simplify': True,
      'path.simplify_threshold': 0.1111111111111111,
      'path.sketch': None,
      'path.snap': True,
      'pdf.compression': 6,
      'pdf.fonttype': 3,
      'pdf.inheritcolor': False,
      'pdf.use14corefonts': False,
      'pgf.debug': False,
      'pgf.preamble': [],
      'pgf.rcfonts': True,
      'pgf.texsystem': 'xelatex',
      'polaraxes.grid': True,
      'ps.distiller.res': 6000,
      'ps.fonttype': 3,
      'ps.papersize': 'letter',
      'ps.useafm': False,
      'ps.usedistiller': False,
      'savefig.bbox': None,
      'savefig.directory': '~',
      'savefig.dpi': 'figure',
      'savefig.edgecolor': 'w',
      'savefig.facecolor': 'w',
      'savefig.format': 'png',
      'savefig.frameon': True,
      'savefig.jpeg_quality': 95,
      'savefig.orientation': 'portrait',
      'savefig.pad_inches': 0.1,
      'savefig.transparent': False,
      'scatter.marker': 'o',
      'svg.fonttype': 'path',
      'svg.hashsalt': None,
      'svg.image_inline': True,
      'text.antialiased': True,
      'text.color': u'.15',
      'text.hinting': 'auto',
      'text.hinting_factor': 8,
      'text.latex.preamble': [],
      'text.latex.preview': False,
      'text.latex.unicode': False,
      'text.usetex': False,
      'timezone': 'UTC',
      'tk.window_focus': False,
      'toolbar': 'toolbar2',
      'verbose.fileo': 'sys.stdout',
      'verbose.level': 'silent',
      'webagg.address': '127.0.0.1',
      'webagg.open_in_browser': True,
      'webagg.port': 8988,
      'webagg.port_retries': 50,
      'xtick.alignment': 'center',
      'xtick.bottom': True,
      'xtick.color': u'.15',
      'xtick.direction': u'out',
      'xtick.labelbottom': True,
      'xtick.labelsize': 'medium',
      'xtick.labeltop': False,
      'xtick.major.bottom': True,
      'xtick.major.pad': 3.5,
      'xtick.major.size': 6.0,
      'xtick.major.top': True,
      'xtick.major.width': 0.8,
      'xtick.minor.bottom': True,
      'xtick.minor.pad': 3.4,
      'xtick.minor.size': 3.0,
      'xtick.minor.top': True,
      'xtick.minor.visible': False,
      'xtick.minor.width': 0.6,
      'xtick.top': False,
      'ytick.alignment': 'center_baseline',
      'ytick.color': u'.15',
      'ytick.direction': u'out',
      'ytick.labelleft': True,
      'ytick.labelright': False,
      'ytick.labelsize': 'medium',
      'ytick.left': True,
      'ytick.major.left': True,
      'ytick.major.pad': 3.5,
      'ytick.major.right': True,
      'ytick.major.size': 6.0,
      'ytick.major.width': 0.8,
      'ytick.minor.left': True,
      'ytick.minor.pad': 3.4,
      'ytick.minor.right': True,
      'ytick.minor.size': 3.0,
      'ytick.minor.visible': False,
      'ytick.minor.width': 0.6,
      'ytick.right': False})
这就是我要正确格式化它的范围(仍然包含一些括号和字符串指示符:

dict_list = []
for i,j in plt.rcParams.items():
    dict_list.append (i + " : " + str(j))

for elem in dict_list:
    elem = elem.replace("[]","")
    elem = elem.replace("None","")
    print(str(elem))

有关样式的更多信息可以在有趣的问题中找到。在尝试将rcParams转换为
.mplstyle
文件时,存在一些陷阱

如果这个问题是如何生成一个包含所有参数的<代码> MPLSype 文件,我会考虑下面的解决方案。 从matplotlib安装中读入
matplotlibrc.template
文件,并将其转换为有效的rc文件。这在matplotlib 2.2.0或更高版本中有效,因为我仅使用此模板

import matplotlib as mpl

path_to_rc = mpl.matplotlib_fname()
with open(path_to_rc, "r") as f:
    rclines = f.readlines()
newlines = []
for line in rclines:
    if line[0] == "#":
        newline = line[1:]
    else:
        newline = line
    if "$TEMPLATE_BACKEND" in newline:
        newline = "backend : "+mpl.rcParams["backend"]
    if "datapath" in newline:
        newline = ""
    newlines.append(newline)

with open("mynewstyle.mplstyle", "w") as f:
    f.writelines(newlines)
生成的文件基本上与类似,只是所有参数都未注释,因此可以用作
.mplstyle