给定现有matplotlib轴对象kwargs

给定现有matplotlib轴对象kwargs,matplotlib,Matplotlib,我想给现有的Axis对象一个关键字参数字典。这可能吗 例如 导入matplotlib.pyplot作为plt kwargs={'xlim':(0,2),'ylabel':'y'} 图,ax=plt.子批次() ax.给出_-kwargs(**kwargs) 我看到matplotlib.Axes类有一个**kwargs参数,但是(我很确定)它只在对象初始化期间可用,而不是在对象已经存在之后 编辑: 为了避免这种情况,下面是想做类似事情的背景 我发现自己经常做的是创建函数来绘制一些通用数据,我必须

我想给现有的Axis对象一个关键字参数字典。这可能吗

例如

导入matplotlib.pyplot作为plt
kwargs={'xlim':(0,2),'ylabel':'y'}
图,ax=plt.子批次()
ax.给出_-kwargs(**kwargs)
我看到
matplotlib.Axes
类有一个
**kwargs
参数,但是(我很确定)它只在对象初始化期间可用,而不是在对象已经存在之后

编辑: 为了避免这种情况,下面是想做类似事情的背景

我发现自己经常做的是创建函数来绘制一些通用数据,我必须添加5个以上的额外参数来处理轴的所有“set”方法:

def fancy\u绘图(数据arg1、数据arg2、xlim=None、ylabel=None):
图,ax=plt.子批次()
ax.plot(数据[data\u arg1],数据[data\u arg2])
如果xlim:ax.set_xlim(xlim)
if ylabel:ax.set_ylabel(ylabel)

是的,我们可以把你的
kwargs
词汇当作方法和参数的口述

import matplotlib.pyplot as plt

kwargs = {'set_xlim': (0, 2), 'set_ylabel': 'y'}

fig, ax = plt.subplots()
for (method, arguments) in kwargs:
    getattr(ax, method)(*arguments)
或者,如果所有方法都遵循
set\u something
命名约定:

import matplotlib.pyplot as plt

kwargs = {'xlim': (0, 2), 'ylabel': 'y'}

fig, ax = plt.subplots()
for (method, arguments) in kwargs:
    getattr(ax, f"set_{method}")(*arguments)
然后,您可以将
getattr
部分包装在
try except
中,以防您的词汇表包含不存在的
ax
方法

for (method, arguments) in kwargs:
    try:
        getattr(ax, f"set_{method}")(*arguments)
    except AttributeError:
        print("Please everyone panic.")

我不确定在您的情况下是否有必要创建轴和图形。关于您的编辑,我相信单独创建图形和轴可能是更简单的方法。创建
fig=plt.figure()
,然后使用
ax=fig.add\u子地块(**kwargs)
添加轴。这样,您仍然可以使用斧头和无花果对供以后使用。