3-variables Je travaille actuellement sur un data.frame
très simple, contenant trois colonnes:complotant heatmap ggplot2
x
contient les coordonnées x d'un ensemble de points,
y
contient les coordonnées y du ensemble de points, et
weight
contient une valeur associée à chaque point;
Maintenant, en travaillant dans ggplot2
je semble être en mesure de tracer des niveaux de contour pour ces données, mais je n'arrive pas à trouver un moyen de remplir le tracé en fonction de la variable weight
. Voici le code que j'ai utilisé:
ggplot(df, aes(x,y, fill=weight)) +
geom_density_2d() +
coord_fixed(ratio = 1)
Vous pouvez voir qu'il n'y a aucun remplissage, malheureusement. J'essaie depuis trois jours maintenant, et je commence à être déprimé.
La spécification de fill=weight
et/ou color = weight
dans l'appel général ggplot
n'a abouti à rien. J'ai essayé d'utiliser des geoms différents (tile, raster, polygone ...), toujours rien. J'ai essayé de spécifier le aes
directement dans la couche geom, n'a pas fonctionné. Essayé pour convertir l'objet en tant que ppp mais ggplot
ne peut pas les gérer, et également en utilisant le tracé de base-R ne fonctionnait pas. Je n'ai honnêtement aucune idée de ce qui ne va pas! Je joins les données des 10 premiers points, qui est espacée sur une grille irrégulière:
x = c(-0.13397460,-0.31698730,-0.13397460,0.13397460,-0.28867513,-0.13397460,-0.31698730,-0.13397460,-0.28867513,-0.26794919)
y = c(-0.5000000,-0.6830127,-0.5000000,-0.2320508,-0.6547005,-0.5000000,-0.6830127,-0.5000000,-0.6547005,0.0000000)
weight = c(4.799250e-01,5.500250e-01,4.799250e-01,-2.130287e+12,5.798250e-01,4.799250e-01,5.500250e-01,4.799250e-01,5.798250e-01,6.618956e-01)
tout conseiller? La sortie souhaitée serait quelque chose le long de ces lignes:
Merci à l'avance.
On dirait que vous vous détournez une parcelle de densité. Les diagrammes de densité sont destinés à estimer les fonctions de densité de probabilité sous-jacentes (une fonction qui s'intègre à 1 sur l'espace échantillon). Peut-être que vous voulez une forme d'interpolation pour répartir les valeurs de fonction sur une surface? Mais dans ce cas, vous devrez choisir une forme de modélisation statistique pour l'interpolation. – MrFlick
Avez-vous essayé d'examiner la fonction 'filled.contour'? Vous devez d'abord interpoler vos données avec quelque chose comme 'library (akima)' 'int.ds <- interp (df $ x, df $ y, df $ poids, duplicate =" strip ")'. Ensuite, vous pourriez faire quelque chose comme 'filled.contour (int.ds)' –