有没有理由说matplotlib的命名法在面向对象的界面中是不同的?

时间:2017-07-01 03:37:51

标签: python matplotlib

要问一个将要关闭的愚蠢问题的风险:为什么Matplotlib中的方法名称在面向对象模式和状态机模式之间有所不同?

例如,我可以通过两种方式创建一个格栅轴:

plt.figure()
plt.grid()
# OR
f, ax = plt.subplots()
ax.grid()

这对我有意义。同样包括图例(plt.legend()ax.legend())。但是,对于某些特定命令,这不是真的。例如标签:

plt.xlabel('x')
# translates to
ax.set_xlabel('x')

我知道这是一个小问题,但它总是让我烦恼。有没有理由为什么这些方法没有相同的名称?我觉得文档没有很好地解释两种模式之间的区别,所以我找不到任何东西。

1 个答案:

答案 0 :(得分:0)

一些matplotlib命令最初以MATLAB命令命名,部分原因是pylab API最初旨在提供Python替代MATLAB绘图。随着matplotlib的发展,为“OO接口”开发了一个更加一致的命名方案,但仍保留了MATLAB名称。