Es ist nicht so schwierig, Ihre eigenen parallelen Koordinaten Grundstück in ggplot2 zu rollen, die Ihnen die Flexibilität, die Ästhetik anpassen geben. Unten ist eine Illustration mit dem eingebauten diamonds
Datenrahmen.
Um parallele Koordinaten zu erhalten, müssen Sie eine ID
Spalte hinzufügen, damit Sie jede Zeile des Datenrahmens identifizieren können, die wir als group
Ästhetik in ggplot verwenden. Sie müssen auch scale
die numerischen Werte, so dass sie alle auf der gleichen vertikalen Skala sind, wenn wir sie plotten. Dann müssen Sie alle gewünschten Spalten auf der X-Achse nehmen und sie in ein "langes" Format umformen. Wir machen das alles im laufenden Betrieb mit dem Rohrführer tidyverse/dplyr
.
Auch nach der Begrenzung der Anzahl der Kategorienkombinationen sind die Zeilen wahrscheinlich zu eng miteinander verwoben, damit diese Darstellung leicht interpretierbar ist. Betrachten Sie dies als bloßen "Proof of Concept". Hoffentlich können Sie etwas Nützlicheres mit Ihren Daten erstellen. Ich habe colour
(für die Linien) und fill
(für die Punkte) Ästhetik unten verwendet. Sie können stattdessen shape
oder linetype
verwenden, je nach Ihren Bedürfnissen.
library(tidyverse)
theme_set(theme_classic())
# Get 20 random rows from the diamonds data frame after limiting
# to two levels each of cut and color
set.seed(2)
ds = diamonds %>%
filter(color %in% c("D","J"), cut %in% c("Good", "Premium")) %>%
sample_n(20)
ggplot(ds %>%
mutate(ID = 1:n()) %>% # Add ID for each row
mutate_if(is.numeric, scale) %>% # Scale numeric columns
gather(key, value, c(1,5:10)), # Reshape to "long" format
aes(key, value, group=ID, colour=color, fill=cut)) +
geom_line() +
geom_point(size=2, shape=21, colour="grey50") +
scale_fill_manual(values=c("black","white"))
Ich habe ggparcoords
noch nie benutzt, aber die einzige Option, die (zumindest auf meinem ersten Versuch mit der Funktion) einfach schien, war zusammen zwei Spalten mit Daten einzufügen. Unten ist ein Beispiel. Selbst mit nur vier Kategorie-Kombinationen, die Handlung ist verwirrend, aber vielleicht wird es interpretierbar sein, wenn es starke Muster in den Daten:
library(GGally)
ds$group = with(ds, paste(cut, color, sep="-"))
ggparcoord(ds, columns=c(1, 5:10), groupColumn=11) +
theme(panel.grid.major.x=element_line(colour="grey70"))
Was geschrieben Sie sind schöner als die Antwort, wie es die zeigt Bereich von jeder Koordinate und nicht nur den standardisierten Bereich ... – Chris