Eigentlich versuche ich eine Figur zu zeichnen, aber es stellt und zeigt alle Spalten (Linien) aufeinander, so dass es nicht repräsentativ ist. Ich versuche, simulierte Daten zu machen und zeige dir, wie ich es darstelle, und zeige dir auch, was ich will
Ich weiß nicht, wie man ein Datenbeispiel wie ich unten zeige, aber hier was ich mache
%Vor%Nachdem ich den Datenrahmen erstellt habe, werde ich alle Spalten gegen die erste plotten, indem ich sie schmelze und ggplot verwende
%Vor%Ich möchte einen bestimmten Abstand zwischen jeder Zeile (in diesem Fall haben wir 6) etwas wie unten haben. in einer Dimension ist es V1, in einer anderen Dimension ist es die Anzahl der Spalten. Ich interessiere mich nicht für die Funktion, ich möchte nur das Foto
Diese Lösung verwendet rgl
und erstellt dieses Diagramm:
Es verwendet diese Funktion, die 3 Argumente akzeptiert:
df
: a data.frame
genau wie Ihr 'M' oben x
: a numeric vector (or a 1-col
data.frame ') für die x-Achse cols
: (optionnal) ein Vektor von Farben zu wiederholen. Wenn sie fehlen, wird eine schwarze Linie gezeichnet (Hier ist die Funktion:
%Vor% Beachten Sie, dass Sie require(rgl)
aus der Funktion und library(rgl)
irgendwo in Ihrem Skript entfernen können, zB am Anfang.
Wenn Sie rgl
nicht installiert haben, dann install.packages("rgl")
.
Schwarze Linien, die Vorgabe, können einen Moiré -Effekt erzeugen, aber eine sich wiederholende Farbpalette ist schlechter. Dies kann vom Gehirn abhängig sein. Eine einzelne Farbe würde auch vermeiden, eine künstliche Dimension (und eine starke) einzuführen.
Ein Beispiel unten:
%Vor%Das 3D-Fenster kann mit der Maus navigiert werden.
Brauchst du noch etwas anderes?
BEARBEITEN
Sie können Ihr zweites Diagramm mit der folgenden Funktion erstellen. Die Reichweite Ihrer Daten ist so groß, und ich denke, die ganze Idee dahinter, jede Zeile nach oben zu verschieben, verhindert eine y-Achse mit einer zuverlässigen Skalierung. Hier habe ich alle Signale normalisiert (0 & lt; = Signal & lt; = 1). Auch der Parameter gap
kann verwendet werden, um damit zu spielen. Wir könnten die beiden Verhaltensweisen trennen, aber ich denke, es ist nett. Probieren Sie andere Werte von gap
aus und sehen Sie sich die folgenden Beispiele an.
df
: a data.frame
genau wie Ihr 'M' oben x
: a numeric vector (or a 1-col
data.frame ') für die x-Achse cols
: (optionnal) ein Vektor von Farben zu wiederholen. Wenn sie fehlen, wird eine schwarze Linie gezeichnet (gap
: Lückenfaktor zwischen einzelnen Zeilen more_gap_each
: alle n Zeilen wird eine größere Lücke erzeugt ... more_gap_relative
: ... und wird gap
x more_gap_relative
wide Hier ist die Funktion:
%Vor%Wir können es mit (Standard) verwenden:
%Vor%Und Sie erhalten diese Handlung:
oder:
%Vor%oder mit Farben:
%Vor%oder, immer noch mit Farben und doch mit größeren Lücken:
%Vor%Wie bereits erwähnt, haben Ihre Daten sehr große Peaks und es ist nicht klar, ob Sie die Überschneidung einiger Kurven zulassen möchten,
%Vor%Alternativ könnte ein Ausreißer / Spitzendetektionsschema verwendet werden, um sie herauszufiltern, bevor die Verschiebung zwischen den Kurven berechnet wird,
%Vor%(es gibt wahrscheinlich gute Algorithmen, um zu entscheiden, welche Punkte entfernt werden sollen, aber ich kenne sie nicht)
Für das 3D-Plotten bevorzuge ich das rgl-Paket. Dies sollte in der Nähe Ihrer gewünschten Lösung sein.
Die Farbe jedes Scans ändert sich bei jedem dritten.
Mache die großen Unterschiede in der Größe der Datenpunkte, ich musste einige Faktoren skalieren, um einen lesbaren Graphen zu erstellen. Die Intensität geht von 0 bis fast 1.000.000 und verzerrt somit den Graphen. Es wurde versucht, die Norm zu normalisieren, indem man das ln nahm, aber die Handlung wurde unlesbar.
Tags und Links r