Python 通过将轴标签作为参数传递给plot()将其添加到matplotlib中的plot中

Python 通过将轴标签作为参数传递给plot()将其添加到matplotlib中的plot中,python,matplotlib,Python,Matplotlib,如何设置matplotlib plot中的x-label和y-label,将它们作为参数传递给plot()函数 基本上我想做这样的事情: def plot_something(data, plot_conf): data.plot(**plot_conf) ...do some other stuff... plot_conf = {'title': 'Blabla', 'xlabel':'Time (s)', 'ylabel': 'Speed (m/s)'} plot_som

如何设置
matplotlib plot中的
x-label
y-label
,将它们作为参数传递给
plot()
函数

基本上我想做这样的事情:

def plot_something(data, plot_conf):
    data.plot(**plot_conf)
    ...do some other stuff...

plot_conf = {'title': 'Blabla', 'xlabel':'Time (s)', 'ylabel': 'Speed (m/s)'}
plot_something(data,plot_conf)

我不希望使用任何额外的函数调用,如@nordev已经解释过的
xlabel()

,您不能通过
plot()
轴标签,但在您的函数中,您可以获得活动图形,然后设置轴标签,如下例所示:

import matplotlib.pyplot as plt
def plot_something(x, y, **kwargs):
    title  = kwargs.pop( 'title'  )
    xlabel = kwargs.pop( 'xlabel' )
    ylabel = kwargs.pop( 'ylabel' )
    plt.figure()
    plt.plot(x, y, **kwargs)
    fig = plt.gcf()
    for axis in fig.axes:
        axis.set_title( title )
        axis.xaxis.set_label_text( xlabel )
        axis.yaxis.set_label_text( ylabel )
    return axis


plot_conf = {'title': 'Blabla', 'xlabel':'Time (s)', 'ylabel': 'Speed (m/s)'}
x = [1.,2.,3.]
y = [1.,4.,9.]
axis = plot_something(x=x,y=y, **plot_conf)

有关有效的KWARG,请参阅的文档。不能将xlabel、ylabel和title作为参数传递给
plot()
方法,因为它们是
实例的属性。
plot()
方法返回一个
Line2D
实例。我认为实现这一点最简单、最直观的方法是将
plot\u something()
函数更改为实际使用额外的函数调用。关于为什么不能立即执行此操作的一个简单解释是:可以为每个
对象多次调用
plot()
方法(例如,在同一子批中绘制两条或多条不同的线)。如果这些方法调用中的每一个都要设置
轴的标题、xlabel和ylabel
,那么一切都会很快变得非常混乱!而且,这也不像目前那样直观和面向对象。@sjosund只是为了提醒答案;)谢谢你的代码。axis标签部分在first go中对我不起作用。我通过将
set_label
更改为
set_label_text
@Atlas7来实现它。谢谢您的评论,我更新了答案