繁体   English   中英

SPSS中的matplotlib图

[英]matplotlib graphs in SPSS

是否可以在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扩展要求太多了,但使用另一个图库比使用它们内置的图库更好。

您可以使用任何Python代码或库,但您需要进行一些配置。 安装Python支持(Python Essentials)时,它会安装一个未注册的私有Python系统,以免与可能安装的任何其他Python冲突。 因此,如果您尝试添加其他库,安装程序将不知道该做什么或将它们安装在Statistics安装程序不知道的地方。

解决此问题的最简单方法是安装另一个标准Python安装(如果需要Python 3,则在最新版本中安装2.7版本,在版本24安装3.4版本)。 然后转到编辑>选项>文件并指向该分发。 您需要重新启动统计信息才能生效。 我使用Anaconda发行版,其中包括许多其他好东西。

我不是Mac用户,但这样的事情应该有效。

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

我认为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通信并对其进行控制。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM