Das rgl-package bietet in R eine Möglichkeit, dreidimensionale Daten interaktiv darzustellen. Mit der Maus kann man das 3D-Objekt rotieren und mit dem Mausrad kann man es näher heran holen (vergrößern) und verkleinern. Für die Darstellung benutzt rgl OpenGL. Um die 3D-Inhalte in intaktiver Form auch in Webseiten einbinden zu können, kann OpenGL nach WebGL umgewandelt werden. WebGL kann von allen aktuellen Browsern (auch den mobilen) dargestellt werden1. Wenn rgl-Befehle wie plot3d() in knitr-Dokumente eingebettet werden, wird beim compilieren automatisch ein WebGL-Objekt generiert und in die html-Seite eingebettet. Vorraussetzung ist, dass man die Chunk-Option webgl=TRUE setzt. Bei Bedarf kann dieses in die html-Seite eingebettet werden. Dazu muss folgendes im Head der markdown-Datei definiert sein:
Ausserdem müssen im ersten Chunk (z.B. im “Setup”-Chunk) folgende Befehle ausgeführt werden:
Der erste Befehl lädt rgl, der zweite ermöglicht das setzen von webgl=TRUE in den Chunk-Einstellungen. Der letzte Befehl sorgt dafür, dass kein rgl Fenster beim Generieren der Seite geöffnet wird, sondern die Grafik direkt in die html-Seite eingebunden wird.
Hier einige Beispiele:
You must enable Javascript to view this page properly.
You must enable Javascript to view this page properly.
You must enable Javascript to view this page properly.
You must enable Javascript to view this page properly.
You must enable Javascript to view this page properly.
Das letzte Beispiel zeigt, wie man mit rglwidget auch animierte 3D-Darstellungen per WebGL einbinden kann. Dieses Beispiel ist dem htmlwidgets showcase entnommen.