要问一个将要关闭的愚蠢问题的风险:为什么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')
我知道这是一个小问题,但它总是让我烦恼。有没有理由为什么这些方法没有相同的名称?我觉得文档没有很好地解释两种模式之间的区别,所以我找不到任何东西。
答案 0 :(得分:0)
一些matplotlib命令最初以MATLAB命令命名,部分原因是pylab API最初旨在提供Python替代MATLAB绘图。随着matplotlib的发展,为“OO接口”开发了一个更加一致的命名方案,但仍保留了MATLAB名称。