Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python SPSS中的matplotlib图_Python_Graph_Spss - Fatal编程技术网

Python SPSS中的matplotlib图

Python SPSS中的matplotlib图,python,graph,spss,Python,Graph,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.scatte

是否可以使用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中使用该代码时,
开始程序
结束程序
会出现以下错误:

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发生冲突。因此,如果您尝试添加其他库,安装程序将不知道该做什么,或者将它们安装到统计信息安装程序不知道的地方

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


我不是Mac用户,但这样做应该可以。添加更多信息作为另一个答案,因为注释字段太有限

我没有在Windows上看到框架错误,我认为这是另一个问题。但是在统计数据中运行代码是有效的——有点像。它不会将图像放在查看器中,而是在自己的窗口中弹出(可能隐藏在另一个窗口后面)

因此,统计人员并不知道这一点,而是耐心地等待程序完成,直到您关闭该窗口(该窗口的正常帧未显示在图形中)时才会发生

要实现这一点,需要引导matplotlib代码将图像写入某个文件中,然后使用SpssClient API将该图像插入查看器中。请参阅Python可编程性帮助中的CreateImageChartItem方法(Python)。或者,如果可以指示matplotlib将图像写入标准输出流,则统计信息可以直接在查看器中捕获图像

我通常使用R代码制作可编程性图像(尽管Python是一种更好的语言(!),在这里,所有这些都可以无缝地工作。或者我使用Python代码编写统计图形命令,并使用GPL让功能强大的统计引擎绘制图表

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

导入spss


这对于开发和调试Python代码有很大的好处,但不能直接使用SpssClient模块方法。我从我的IDE(Wing Professional)运行了您的代码,图像窗口随即弹出。当然,您可以在外部模式下使用spss模块和相关API与统计数据通信并控制它。

可能不应该安装另一个python安装来与spss一起使用,但指向另一个python也不起作用。那么你的意思是你可以与其他库一起打印到spss输出中?不是。我的意思是使用一个与你的统计版本兼容的外部公共Python安装。Python2.7将与最新的统计版本一起使用。我经常这样做。我使用Anaconda,它包括matplotlib。作为一种变体,您可以安装Anaconda或类似软件,然后将其包含在Python搜索路径中。为此,请在安装了统计信息的site packages目录中创建一个名为sitecustomize.py的文件。它应该包含此导入sys.path.append(“c:/a27/lib/site packages”),其中第一部分位于安装Anaconda的位置。我已经在sitecustomize.py中包含了指向站点包的路径,仍然显示该消息。但话说回来,您确定可以将外部图形打印到输出中吗?怎样?我提供的代码对您有用吗?谢谢您的回答,以及详细的回答。我尝试了另一台安装了SPSS的计算机,代码确实在那里工作。因此,我在另一台计算机上安装的python有问题!