Matplotlib:在一行中设置x y标签

时间:2016-05-31 06:22:02

标签: python matplotlib

如果我想设置轴的x,y标签,我必须这样做:

import matplotlib.pyplot as plt
plt.plot([1,2,3,4])
plt.ylabel('This is y label')
plt.xlabel('This is x label')
plt.show()

我需要单独设置xlabelylabel

我想知道是否有任何语法我可以做类似的事情:

plt.label('x label', 'y label')

所以代码看起来更紧凑?

或者如何制作任何自定义功能?

2 个答案:

答案 0 :(得分:5)

一旦开始更频繁地使用matplotlib的面向对象模型,您将能够将轴的所有相关参数作为关键字添加到构成这些轴的函数中。

一个简单的例子:

fig = plt.figure()
ax = fig.add_subplot(111, xlabel="time", ylabel="money")

更长的例子:

fig1 = plt.figure(figsize=(10,8))
ax1 = fig1.add_axes((0.1, 0.1, 0.8, 0.8), # full positional control
    frameon=True,                         # display frame boundary
    aspect='equal',                       # set aspect ratio upon creation
    adjustable='box',                     # what part of the axes can change to meet the aspect ratio requirement?
    xticks=[0.1, 1.2, 10],                
    xlabel='voltage (V)',
    xlim=(0.05, 10.05),
    yticks=[0, 10],
    ylabel='current (µA)',
    ylim=(0, 2))

跟进收到的评论,您还可以使用“属性批量设置器”ax.set,这是一个不错的小matplotlib便利功能。

plt.close('all')
plt.plot([1,2,3], [4, 7, 1])
plt.gca().set(xlabel='x', ylabel='y')

答案 1 :(得分:1)

也许这可以帮到你

import matplotlib.pyplot as plt

def grap_label(g, lx='',ly=''):
    plt.xlabel(lx)
    plt.ylabel(ly)
    plt.show()

grap_label(plt.plot([1,2,3,4]), 'This is x label','This is y label')