python – SPSS中的matplotlib图

是否可以在SPSS中使用内置的任何其他图形库?我刚刚发现了使SPSS很棒的
python扩展.

import matplotlib.pyplot as plt
from numpy.random import rand


fig, ax = plt.subplots()
for color in ['red', 'green', 'blue']:
    n = 750
    x, y = rand(2, n)
    scale = 200.0 * rand(n)
    ax.scatter(x, y, c=color, s=scale, label=color,
               alpha=0.3, edgecolors='none')

ax.legend()
ax.grid(True)

plt.show() 

这将创建一个简单的散点图,它可以在任何IDE中正常工作,但是当尝试在SPSS BEGIN PROGRAM END PROGRAM中使用该代码时,我收到以下错误:

RuntimeError: Python is not installed as a framework. The Mac OS X backend will not be able to function correctly if Python is not installed as a framework. See the Python documentation for more information on installing Python as a framework on Mac OS X.
 Please either reinstall Python as a framework, or try one of the other backends. If you are Working with Matplotlib in a virtual enviroment see 'Working with Matplotlib in Virtual environments' in the Matplotlib FAQ

也许我对SPSS中的python扩展要求太多了,但使用另一个图库比使用它们内置的图库更好.

最佳答案 作为另一个答案添加更多信息作为评论字段太有限.

我认为Windows上没有框架错误,这是一个不同的问题.但是在统计工作中运行你的代码 – 有点像.它不是将图像放置在Viewer中,而是弹出自己的窗口(可能隐藏在另一个窗口后面).

《python – SPSS中的matplotlib图》

所以统计数据不知道它并且耐心地等待程序完成,直到你关闭那个窗口(图中没有显示正常的框架)才会发生这种情况.

要使其工作,您需要指示matplotlib代码将图像写入某个文件,然后使用SpssClient apis在查看器中插入该图像.请参阅Python可编程性帮助中的CreateImageChartItem方法(Python).或者,如果您可以指示matplotlib将图像写入标准输出流,则Statistics可能能够直接在Viewer中捕获它.

我通常使用R代码编写可编程图像(即使Python是一种更好的语言(!)),这一切都可以无缝地工作.或者我使用Python代码编写统计图形命令和GPL以使统计引擎非常强大,可以绘制图表.

如果您使用的是Python,那么您会发现有用的另一件事是您可以在外部模式下运行Python,在这里您可以从运行IDE或Python命令行的Python代码开始,然后让它通过运行来调用统计信息

导入spss

这对于开发和调试Python代码有很大的优势,但是不能直接使用SpssClient模块方法.我从IDE(Wing Professional)运行您的代码,图像窗口立即弹出.当然,您可以在外部模式下使用spss模块和相关的apis与Statistics通信并对其进行控制.

点赞