Rpy und Python; Wie baut man sich komplexe Befehle

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
The Spirit
User
Beiträge: 276
Registriert: Freitag 8. Juni 2007, 08:50
Wohnort: 84xxx Bereich
Kontaktdaten:

Edit:
Lösung, siehe letzter Post!!!

------------------------------------------------------------

Original:

HI.
Vielleicht arbeiten hier auch ein paar mit R und Python.
Ab aktuell das Problem, das ich auf der suche nach einer plot option mit, die in der ich noch "aktiv" arbeiten kann.
Also kein statischer plot, sonder einer, in dem ich zoomen, klicken und auch noch text rein schreiben kann.
Hab bisher zwei pakete gefunden.
Einmal iplots und playwith.
Bekomme jedoch beide nicht zum arbeiten.
Iplots hat das problem, das wenn die liste an zu zeichnenden elementen zu groß ist, er nen error wirft.
Playwith finde ich super praktisch mit vielen Funktionen, jedoch bekomme ich die umwandlung des R-Befehls in Python nicht gebacken.
Das laden des packetes läuft noch einwandfrei, aber der befehl zum plotten ist in

R:

Code: Alles auswählen

playwith(plot(a)) #a ist die liste mit elementen
Wenn ich jetzt in python tippe:

Code: Alles auswählen

from rpy import r
r.library("playwith")
r.playwith(plot(a))
dann läuft der code sauber bis r.library("playwith") und dann wirft er mir folgenden error

Code: Alles auswählen

NameError: global name 'plot' is not defined
Hat da jemand ne idee?
Thx
Zuletzt geändert von The Spirit am Dienstag 18. August 2009, 11:48, insgesamt 1-mal geändert.
Benutzeravatar
gkuhl
User
Beiträge: 600
Registriert: Dienstag 25. November 2008, 18:03
Wohnort: Hong Kong

Hi,
wie die Fehlermeldung schon sagt, ist ´´plot´´ nicht definiert. Versuch mal mit:

Code: Alles auswählen

r.plot(a)
Grüße
Gerrit
The Spirit
User
Beiträge: 276
Registriert: Freitag 8. Juni 2007, 08:50
Wohnort: 84xxx Bereich
Kontaktdaten:

wenn ich

Code: Alles auswählen

r.plot(a)
dann wird ja wieder die standart plot funktion von R aufgerufen und das will ich ja nicht
The Spirit
User
Beiträge: 276
Registriert: Freitag 8. Juni 2007, 08:50
Wohnort: 84xxx Bereich
Kontaktdaten:

hab es jetzt herausgefunden.
hier die lösung

Code: Alles auswählen

r.library("playwith") #gewünschte library importieren

r.assign("var", data) #hier wird der variable "var" für R, die daten "data" zugewiesen

#jetzt baut man sich den gewünschten r-code (alles innerhalb der dreifachen anführungseichen) zusammen, genau wie in R selbst
r("""
	playwith( { 
		        plot(var, type = "l")
		        lines(var)
		        }
		        )
	"""
	)
vielleicht kann das ja mal jemand brauchen
Antworten