Interaktives Zoomen ist nicht möglich, um mit ggvis zu arbeiten

8

Ich versuche, interaktives Zoomen in ggvis zu erreichen, insbesondere das Zoomen mit einem Pinsel. Nach Meinung von Ссылка dachte ich, das sollte funktionieren.

Ich habe den folgenden glänzenden und ggvis Code (ist vollständig reproduzierbar):

%Vor%

Sobald also ein Pinsel gezeichnet wird, werden die reaktiven Domänen geändert, was wiederum die Domäne der x scale_numeric ändert. Wenn immer noch die folgenden Herausforderungen bestehen:

  • Inside zoom_brush Ich erhalte die Koordinaten des Pinsels, aber im Pixelkoordinatensystem des Plots nicht das Domänenkoordinatensystem. Wie kann ich die Pixel in die Domänenskala übertragen? In d3 kann ich einfach den Bereich verwenden, um Transformationsfunktionen zu skalieren, aber ich sehe nicht, wie diese in ggvis (über Vega) verfügbar sind.
  • Die handle_brush-Funktion unterstützt nur das Festlegen eines on_move -Ereignishandlers. In diesem Fall möchte ich nur den Zoom auslösen, wenn der Pinsel fertig ist, also das onmouseup Event im Kontext des Pinsels. Ich fürchte, das ist momentan einfach nicht möglich?
  • Nur wenn ich clamp = TRUE setze, bekomme ich einen effektiven Zoom. In diesem Fall werden die Punkte außerhalb der Domäne weiterhin angezeigt, und nur die Achsen werden auf die neue Domäne festgelegt. Gibt es eine einfache Lösung dafür? Oder sollte ich das Dataset reaktiv machen und es auf Basis der vom Pinsel gesetzten Domäne unterteilen?

Ich führe die folgenden R-Versionen und Paketversionen aus.

%Vor%     
Paul Hiemstra 14.09.2015, 16:44
quelle

1 Antwort

1

Ich denke, Sie müssen Ihre Daten unterteilen: ggvis erscheint noch nicht clever genug, um Skalenpunkte zu ignorieren. Das folgende server.R funktioniert für mich:

%Vor%     
Jack Wasey 06.11.2015, 15:04
quelle

Tags und Links