Question

J'utilise RPy2 pour créer des tracés.L'intrigue apparaît mais la fenêtre X11 disparaît immédiatement.

Tout ce que je tape, c'est ce qui suit, où CCFS est une matrice de données

 import rpy2.robjects as robjects
 r = robjects.r

 pca = r.princomp(CCFS)
 r.plot(pca,main="Eigenvalues")
 r.biplot(pca,main="biplot")
 r['dev.off']() #*EDIT* the problem persists even if I remove this line.

Est-ce que je n'arrive pas à inclure quelque chose ?Je sais qu'il y a quelque chose à tracer car princomp renvoie un ListVector qui n'est pas nul.

Était-ce utile?

La solution

Ajouter

input()         # for Python3
# raw_input()   # for Python2

à la fin du script pour empêcher le programme de se terminer jusqu'à ce que l'utilisateur appuie sur ENTRER.

Autres conseils

Comme Zack l'a souligné en appelant dev.off() sur les appareils graphiques interactifs, cela entraînera simplement la fermeture de l'appareil (et la disparition de ce qu'il affiche).D'un autre côté, la fermeture des appareils non interactifs est généralement requise avant que le tracé puisse être vérifié (voir documentation de rpy2 sur les périphériques graphiques).

Je suppose que votre code Python est appelé en tant que programme/script autonome plutôt que comme partie d'une session Python interactive.En d'autres termes, je soupçonne que vous souffrez de quelque chose comme python myscript.py dans un shell (le contenu de myscript.py étant votre code ci-dessus);lorsque le script se termine, le R intégré est évidemment terminé, emportant avec lui l'intrigue interactive.C'est probablement aussi ce que pense Zack.Essayer python -i myscript.py, puis une fois dans la console Python import sys; sys.exit(0) pour voir que quitter Python signifie fermer les appareils interactifs R.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top