【发布时间】:2016-04-16 16:18:26
【问题描述】:
我想显示来自 LLDB 会话的绘图,可以吗?
plt.figure()
plt.title('Test')
plt.imshow(array, cmap='gray')
plt.show()
现在,当我通过“命令脚本导入 ~/script.py”执行此操作时;会话卡住了!
【问题讨论】:
我想显示来自 LLDB 会话的绘图,可以吗?
plt.figure()
plt.title('Test')
plt.imshow(array, cmap='gray')
plt.show()
现在,当我通过“命令脚本导入 ~/script.py”执行此操作时;会话卡住了!
【问题讨论】:
这在命令行 lldb 中可以正常工作(或者至少对我有用...)
尝试与 Xcode 共享到 Window Server 的连接时它不起作用(因为 lldb 在 Xcode 应用程序进程中运行)并不完全令人惊讶。执行 plt.figure() 似乎停滞不前,尽管我并不清楚当您调用此方法时 Python 认为它在做什么。它并没有在明显的地方停滞。
我不认为 lldb 与这种方式或其他方式有任何关系(特别是因为命令行 lldb 有效。)您更有可能通过询问 MatPlotLib 人员是否他们来弄清楚如何使其工作当 python 是嵌入式解释器时,有任何分享 GUI 的经验,尤其是在像 Xcode 这样复杂的东西中。
您还可以查看他们是否有任何方法可以调用进程外渲染器。这可能会解决生活在 Xcode 中的复杂性。
【讨论】:
我在 Xcode 中绘制自定义对象时遇到了类似的问题。调用 plt.plot() 时 lldb 会话崩溃。
我将 matplotlib 与 Agg 后端一起使用,并且能够在方便的位置绘制和保存生成的图。但是,您将无法使用 Agg 后端直接从 Xcode 中的 lldb 显示它们。
我的代码如下所示:
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
import numpy as np
plt.plot([1,2,3,4,5])
plt.title("Title")
plt.savefig("your/path")
plt.close()
希望这会有所帮助。
【讨论】: