Sto provando a disegnare la trama del contorno con ggplot2 e si sta rivelando un po 'più difficile di quanto immaginassi. Utilizzando il iris
set di dati sono in grado di produrre questa trama:Livelli del profilo corrispondenti ai livelli variabili in ggplot2
ggplot(iris, aes(x=Petal.Width, y=Petal.Length, fill=Sepal.Width)) +
stat_density2d(geom="polygon", aes(fill=..level..))
Il mio problema è che io non riesco a capire come Display- piuttosto che i valori di densità -il prime Sepal.Width
valori . Ecco quello che ho provato:
ggplot(iris, aes(x=Petal.Width, y=Petal.Length, z=Sepal.Width)) +
geom_tile(aes(fill=Sepal.Width))+
stat_contour(aes(colour=..level..))
Ciò produce un messaggio di errore particolarmente strano:
Warning message:
Computation failed in `stat_contour()`:
(list) object cannot be coerced to type 'double'
Ho provato anche questo:
ggplot(iris, aes(x=Petal.Width, y=Petal.Length, fill=Sepal.Width)) +
stat_density2d(geom="polygon", aes(fill=Sepal.Width))
E infine questo:
ggplot(iris, aes(x=Petal.Width, y=Petal.Length, fill=Sepal.Width)) +
geom_tile()
Qualcuno può consigliare un buon modo per pro duce un grafico di contorno in ggplot2 con i valori della variabile stessa che producono i livelli del contorno?
AGGIORNATO
Dall'esempio stat_contour
:
# Generate data
library(reshape2) # for melt
volcano3d <- melt(volcano)
names(volcano3d) <- c("x", "y", "z")
# Basic plot
ggplot(volcano3d, aes(x, y, z = z)) +
stat_contour(geom="polygon", aes(fill=..level..))
lavoro grande e ha un bell'aspetto. Ma se applico questo esattamente l'esempio iride in questo modo:
ggplot(iris, aes(x=Petal.Width, y=Petal.Length, fill=Sepal.Width)) +
stat_contour(geom="polygon", aes(fill=..level..))
ricevo questo messaggio di errore:
Warning message:
Computation failed in `stat_contour()`:
(list) object cannot be coerced to type 'double'
Questi sono entrambi dataframes con struttura simile, quindi non riesco a capire ciò che è diverso tra i due causa di questo problema.
'stat_countour' bisogno di una griglia rettangolare di valori (come nell'esempio volcano3d). se si dispone di dati irregolari, sarà necessario scegliere un modello per eseguire una qualche forma di interpolazione per calcolare i valori per la griglia che si desidera tracciare. Il valore 'z' che stai vedendo per' stat_density2d' in realtà non sta facendo nulla. Una densità predice solo la densità articolare (~ frequenza) di quelle coppie di osservazioni. – MrFlick