2017-01-21 4 views
4

Ist es möglich, eine andere Grafikbibliothek in SPSS zu verwenden, die eingebaut ist? Ich habe gerade die Python-Erweiterungen entdeckt, die SPSS großartig machen.Matplotlib-Graphen in SPSS

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() 

Dadurch wird eine einfache Streudiagramm erstellen und es funktioniert in jedem IDE in Ordnung, aber wenn Sie diesen Code in SPSS BEGIN PROGRAM zu verwenden versuchen END PROGRAM ich die folgende Fehlermeldung erhalten:

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 

Ich frage Vielleicht zu viel von der Python-Erweiterung in SPSS, aber es wäre schön, eine andere Grafikbibliothek zu verwenden als die, in der sie erstellt wurde.

Antwort

1

Hinzufügen weiterer Informationen als eine andere Antwort, da das Kommentarfeld zu begrenzt ist.

Ich bekomme nicht den Framework-Fehler unter Windows, die ein anderes Problem ist, denke ich. Aber den Code innerhalb von Statistics laufen zu lassen - sozusagen. Anstatt das Bild in den Viewer zu platzieren, wird es in einem eigenen Fenster angezeigt (das möglicherweise hinter einem anderen Fenster verborgen ist).

enter image description here

So Statistik nicht weiß über sie und wartet geduldig auf das Programm zu beenden, was nicht geschieht, bis Sie das Fenster entlassen (die einen normalen Rahmen hat nicht in der Grafik dargestellt).

Um dies zu erreichen, müssen Sie den matplotlib-Code anweisen, das Bild irgendwo in eine Datei zu schreiben und dann mit SpssClient apis dieses Bild in den Viewer einzufügen. Siehe CreateImageChartItem-Methode (Python) in der Python-Programmierhilfe. Wenn Sie matplotlib anweisen können, das Bild in den Standard-Ausgabestream zu schreiben, kann Statistics es möglicherweise auch direkt im Viewer erfassen.

Ich mache normalerweise Programmierbarkeit Bilder mit R-Code (obwohl Python ist eine bessere Sprache (!)), Wo dies alles reibungslos funktioniert. Oder ich benutze Python-Code, um Statistik-Grafikbefehle zu schreiben, und GPL, damit die Statistik-Engine, die ziemlich mächtig ist, das Diagramm erstellt. Wenn Sie Python betreiben, können Sie Python im externen Modus ausführen, wo Sie mit Python-Code beginnen, der von Ihrer IDE oder einer Python-Befehlszeile ausgeführt wird, und dann Statistik aufrufen, indem Sie

ausführen

Import spss

Dies hat große Vorteile für die Entwicklung und Python-Code debuggen, aber Sie können nicht die SpssClient Modul Methoden direkt verwenden.Ich habe Ihren Code von meiner IDE (Wing Professional) ausgeführt, und das Bildfenster ist hochgeklappt. Und natürlich können Sie das spss-Modul und die zugehörige API im externen Modus verwenden, um mit Statistiken zu kommunizieren und sie zu steuern.

+0

Danke für die Antwort und gut detaillierte Antwort. Ich habe versucht, einen anderen Computer mit einer anderen SPSS-Installation und nun, der Code funktioniert dort. Es stimmt also etwas nicht mit meiner Python-Installation auf meinem anderen Computer! – destinychoice

1

Sie können fast jeden Python-Code oder Bibliothek verwenden, aber Sie müssen einige konfigurieren. Wenn die Python-Unterstützung (Python Essentials) installiert ist, wird ein privates, nicht registriertes Python-System installiert, damit es nicht zu Konflikten mit anderen möglicherweise installierten Pythons kommt. Wenn Sie also versuchen, andere Bibliotheken hinzuzufügen, weiß das Installationsprogramm nicht, was zu tun ist, oder installiert sie irgendwo, von denen die Statistics-Installation nichts weiß.

Der einfachste Weg, um dies zu umgehen, ist die Installation einer anderen Standard-Python-Installation (Version 2.7 in neueren Versionen oder 3.4 mit Version 24, wenn Sie Python 3 benötigen). Gehen Sie dann zu Bearbeiten> Optionen> Dateien und zeigen Sie auf diese Verteilung. Sie müssen Statistiken neu starten, damit sie wirksam werden. Ich benutze die Anaconda-Distribution, die viele andere Leckereien enthält.

Ich bin kein Mac-Benutzer, aber so etwas sollte funktionieren.

+0

Sollte wahrscheinlich nicht eine andere Python-Installation für die Verwendung mit SPSS installieren, funktioniert auch nicht auf ein anderes Python zeigen. Du meinst also, du kannst tatsächlich mit anderen Bibliotheken in die spss-Ausgabe plotten? – destinychoice

+0

Nein. Ich möchte eine externe öffentliche Python-Installation verwenden, die mit Ihrer Version von Statistics kompatibel ist. Python 2.7 würde mit den neuesten Statistics-Versionen arbeiten. Ich mache das routinemäßig. Ich benutze Anaconda, die Matplotlib enthält. Als Variante können Sie Anaconda oder ähnliches installieren und dann einfach in Ihren Python-Suchpfad aufnehmen. Erstellen Sie dazu eine Datei namens sitecustomize.py im Verzeichnis site-packages, das mit Statistics installiert wurde. Es sollte dieses Import-System enthalten sys.path.append ("c:/a27/lib/Site-Pakete"), wo der erste Teil ist, wo immer Sie Anaconda installiert haben. – JKP

+0

Ich habe bereits den Pfad zu Site-Paketen in einer sitecustomize.py eingefügt, die diese Nachricht immer noch anzeigt. Aber sind Sie sicher, dass Sie tatsächlich externe Grafiken auf die Ausgabe drucken können? Wie? Funktioniert der von mir bereitgestellte Code für Sie? – destinychoice