是否可以在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中,而是弹出自己的窗口(可能隐藏在另一个窗口后面).
所以统计数据不知道它并且耐心地等待程序完成,直到你关闭那个窗口(图中没有显示正常的框架)才会发生这种情况.
要使其工作,您需要指示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通信并对其进行控制.