簡體   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