pycharm使用matplotlib的子图变量ax没有代码智能提示解决方案!
这个是python动态语言机制的问题。
Python是一种非常动态的语言,以至于具有各种类型推断和调试技巧的PyCharm,有时候也无法仅通过分析源代码,来判断哪些函数调用将会成功,以及在各种情况下函数的返回类型。
在编辑器环境中直接写fig, ax = plt.subplots(),因为ide没有真正执行过该语句,因此ide并不能确切知道函数plt.subplots()返回的fig, ax具体是什么类型,不知道fig, ax是某个类的实例,当然就更不知道fig, ax下面有什么方法,因此不能自动补全。
相对地,如果在控制台环境中,边输入边执行,此时ide自然知道fig, ax = plt.subplots()返回的是实例化的对象,因此可以进行自动补全。
解决方案!
使用类型提示。
import matplotlib.axes._axes as axes
fig = plt.figure(figsize = (5,10))
ax1 = fig.add_subplot(3,1,1) # type:axes.Axes
ax1.set_xlabel('Test') <- now autocompletes
[1]https://stackoverflow.com/questions/36936555/pycharm-auto-completion-for-matplotlib-and-other-imported-modules