在过去的几天里,我一直在玩Numpy和matplotlib.我在尝试使matplotlib绘制函数而不阻塞执行时遇到问题.我知道在这里已经有很多线索提出了类似的问题,而且我已经搜索了很多但是没有设法让这项工作成功.
我曾经尝试过使用show(block = False),但我得到的只是一个冻结的窗口.如果我只是调用show(),则会正确绘制结果,但会阻止执行直到窗口关闭.从我读过的其他主题,我怀疑show(block = False)是否有效取决于后端.它是否正确?我的后端是Qt4Agg.你能看看我的代码并告诉我你是否看错了吗?这是我的代码.谢谢你的帮助.
from math import *
from matplotlib import pyplot as plt
print plt.get_backend()
def main():
x = range(-50, 51, 1)
for pow in range(1,5): # plot x^1, x^2, ..., x^4
y = [Xi**pow for Xi in x]
print y
plt.plot(x, y)
plt.draw()
#plt.show() #this plots correctly, but blocks execution.
plt.show(block=False) #this creates an empty frozen window.
_ = raw_input("Press [enter] to continue.")
if __name__ == '__main__':
main()
Run Code Online (Sandbox Code Playgroud)
PS.我忘了说我想在每次绘制内容时更新现有窗口,而不是创建一个新窗口.
当我print这样时,我的数据如下所示.
print data
A B
2014-04-04 0.000000 0.000000
2014-06-11 0.013416 -0.049643
2014-12-22 0.175361 -0.114184
2014-03-25 -0.160409 0.208127
2014-11-03 0.168943 -0.157301
2014-06-16 -0.130902 0.109455
Run Code Online (Sandbox Code Playgroud)
pd.scatter_matrix(data, diagonal='kde', figsize=(10, 10))
哪里 pd = import pandas as pd
没有抛出错误,但我没有看到图表(?).
matplotlib.pyplot工作时,数据是"可绘制的".Matplotlib仅在我打电话时显示matplotlib.pyplot.plt.show().
我假设情节没有显示,但那我怎么"显示"呢?
编辑:我正在从这个例子开始工作.
谢谢
我将PyCharm用作python的IDE,当您绘制绘图时(使用 pyplot.plot(...),pyplot.show()相同的代码)pycharm将其显示在其IDE中。但是,这看起来像是静态图像。放大时,图开始模糊。
在其他IDE中,pyplot创建一个交互式绘图。放大时,基本上可以重新绘制曲线。您还可以拖动绘图。无论如何,在PyCharm中我可以从pyplot获得交互式绘图吗?