Quelle est la meilleure façon de visualiser graphiquement une fonction de densité 3D? Comme dans je voudrais visualiser ?
Pas nécessaire, mais le R
code serait génial.
data-visualization
fait partie de notre mandat.
Quelle est la meilleure façon de visualiser graphiquement une fonction de densité 3D? Comme dans je voudrais visualiser ?
Pas nécessaire, mais le R
code serait génial.
data-visualization
fait partie de notre mandat.
Réponses:
Eh bien, il y a quatre approches possibles qui me viennent à l'esprit (bien que je sois sûr qu'il y en ait beaucoup d'autres) mais, fondamentalement, vous pouvez soit tracer les données sous forme de tracé en perspective, de tracé de contour, de carte thermique ou si vous préférez une dispersion 3D plot (qui est plus ou moins un plot en perspective lorsque vous avez des valeurs de pour toutes les paires . Voici quelques exemples de chacune (à partir d'un ensemble de données 3D bien connu dans )):( x , y )R
Voici deux tracés supplémentaires qui ont des caractéristiques de tracé plus agréables que celles données précédemment. Ainsi, selon vos préférences, vous dicterez de quelle manière vous souhaitez visualiser les ensembles de données 3D.
Here is the `R` code used to generate these four mentioned plots.
library(fields)
library(scatterplot3d)
#Data for illistarition
x = seq(-10, 10, length= 100)
y = x
f = function(x, y) { r = sqrt(x^2+y^2); 10 * sin(r)/r }
z = outer(x, y, f)
z[is.na(z)] = 1
#Method 1
#Perspective Plot
persp(x,y,z,col="lightblue",main="Perspective Plot")
#Method 2
#Contour Plot
contour(x,y,z,main="Contour Plot")
filled.contour(x,y,z,color=terrain.colors,main="Contour Plot",)
#Method 3
#Heatmap
image(x,y,z,main="Heat Map")
image.plot(x,y,z,main="Heat Map")
#Method 4
#3-D Scatter Plot
X = expand.grid(x,y)
x = X[,1]
y = X[,2]
z = c(z)
scatterplot3d(x,y,z,color="lightblue",pch=21,main="3-D Scatter Plot")
image.plot()
commande ajoute une barre de couleur. Génère également filled.contour()
un tracé similaire avec une barre de couleur ajoutée par défaut.
colorRampPalette()
, par exemple , si vous tapez a = colorRampPalette(c('dark blue','blue','light blue','yellow','orange', 'red','dark red'))
il crée une fonction a
qui génère une approximation discrète d'un continuum de couleurs qui passe à travers ces couleurs. L'argument de a
est un entier qui détermine la résolution de cette approximation discrète.