Ich bin auf eine Reihe von Situationen gestoßen, in denen ich mehr Punkte schmieden möchte, als ich wirklich sein sollte - der Hauptüberfall ist, dass wenn ich meine Pläne mit Leuten teile oder sie in Zeitungen bette, sie zu viel Platz einnehmen. Es ist sehr einfach, Zeilen in einem Datenrahmen zufällig zu probieren.
Wenn ich ein wirklich zufälliges Sample für ein Punktdiagramm haben möchte, ist es leicht zu sagen:
%Vor%Allerdings habe ich mich gefragt, ob es effektivere (idealerweise vorbereitete) Möglichkeiten gibt, die Anzahl der Plotpunkte zu spezifizieren, so dass Ihre tatsächlichen Daten genau in der Plot wiedergegeben werden. Also hier ist ein Beispiel. Angenommen, ich zeichne so etwas wie das CCDF einer stark schwankenden Verteilung auf, z. B.
%Vor%Dies erzeugt ein Diagramm, in dem die x & amp; Y-Achse wird zunehmend dichter. Hier wäre es ideal, wenn weniger Proben für große x- oder y-Werte gezeichnet würden.
Hat jemand Tipps oder Anregungen zum Umgang mit ähnlichen Themen?
Danke, -e
Hier ist eine mögliche Lösung für das Downsampling-Diagramm in Bezug auf die x-Achse, wenn es logarithmisch transformiert ist. Es log transformiert die X-Achse, rundet diese Menge und wählt den Medianwert x in diesem Bin:
%Vor% Unter Verwendung der Definition von ccdf()
von oben können wir dann das ursprüngliche Diagramm der CCDF der Verteilung mit der heruntergerechneten Version vergleichen:
%Vor%
%Vor%
Im PDF-Format nimmt das Original-Plot 640 KB und die Downsampling-Versionen 20 KB bzw. 8 KB in Anspruch.
Ich benutze eher png-Dateien als vektorbasierte Grafiken wie pdf oder eps für diese Situation. Die Dateien sind viel kleiner, obwohl Sie die Auflösung verlieren.
Wenn es sich um ein konventionelles Streudiagramm handelt, hilft auch die Verwendung semitransparenter Farben und löst das Problem der Überzeichnung. Zum Beispiel
%Vor%Abgesehen von Robs Vorschlägen, eine Plot-Funktion, die ich mag, wie es die "Ausdünnung" für Sie macht, ist hexbin ; Ein Beispiel ist in der R Graph Gallery .
Ich würde entweder Bilddateien (PNG- oder JPEG-Geräte) als Rob erstellen, die bereits erwähnt wurden, oder ich d machen ein 2D-Histogramm. Eine Alternative zum 2D-Histogramm ist ein geglättetes Streudiagramm , es macht eine ähnliche Grafik, hat aber einen glatteren Übergang von dichten zu spärlichen Raumbereichen.
Wenn Sie addictedtor noch nie zuvor gesehen haben, ist es einen Blick wert. Es hat einige sehr schöne Grafiken in R mit Bildern und Beispielcode generiert.
Hier ist der Beispielcode der Site addictedtor :
2-d Histogramm:
%Vor%smoothscatter:
%Vor%