我使用pyplot时遇到问题。我是Python的新手,很抱歉,如果我做了一些明显的错误。
在使用pyplot绘制了一些内容后,它会显示图表,但是当我尝试添加例如ylabel它不会更新当前图表。它导致只有ylabel的新图形,而不是之前输入的信息。所以对我而言,识别当前图形/轴似乎是一个问题,但ishold提供了一个真实的声明。
我的设置是Python(x,y)中的Python 2.7。 Spyder IDE和IPython Qt控制台都会出现此问题。然而它并不会出现在常规的IPython控制台中(相比之下,它不是交互式的,但是在使用show()时会包含所有内容。当我在Spyder / Qt控制台中关闭交互时,它在使用show后没有显示任何内容( )命令)。
import matplotlib.pyplot as plt
plt.plot([1,2,3,4])
Out[2]: [<matplotlib.lines.Line2D at 0x78ca370>]

plt.ylabel('test')
Out[3]: <matplotlib.text.Text at 0x5bd5990>

plt.ishold()
Out[4]: True
matplotlib.get_backend()
Out[6]: 'module://IPython.kernel.zmq.pylab.backend_inline'
希望你们中的任何人都有一些意见。感谢。
答案 0 :(得分:1)
这是InlineBackend必须表现出与其他后端不同的行为之一,否则你会有一些内存泄漏。您必须保持对matplotlib图的显式处理和/或在配置中将close_figure
设置为False
。通常pyplot
是matlab的兼容层,为方便起见,尝试学习使用面向对象的方式。
fig,ax = subplots()
ax.plot(range(4))
ax.set_ylabel('my label')
...