Jeg har et sett med data som ser ut som {{x1, y1, z1}, {x2, y2, z2}, ...} så det beskriver punkter i 3D-rom . Jeg vil lage et varmekart ut av disse dataene. Slik at punkter med høy tetthet vises som en sky og merket med forskjellige farger, avhengig av tettheten. 
Jeg vil faktisk ha resultatet av dette skriptet bare for 3D:
data = RandomReal[1, {100, 2}]; SmoothDensityHistogram[data, 0.02, "PDF", ColorFunction -> "Rainbow", Mesh -> 0]   
 
Kommentarer
Svar
 Hvis du vil tegne en fordeling som er tredimensjonal, må du først danne den ! SmoothDensityHistogram plotter et glatt kjernehistogram med verdiene $ \ {x_i, y_i \} $, men da vi har tredimensjonale data her, trenger vi funksjonen kalt SmoothKernelDistribution! 
data = RandomReal[1, {1000, 3}]; dist = SmoothKernelDistribution[data];  Nå har du fått sannsynlighetsfordelingen med tre variabler. Så vi kan ganske enkelt plotte PDF som et 3d-konturplott ved hjelp av ContourPlot3D. Husk at denne funksjonen er kjent for å være litt treg. 
ContourPlot3D[Evaluate@PDF[dist, {x, y, z}], {x, -2, 2}, {y, -2, 2}, {z, -2, 2}, PlotRange -> All, Mesh -> None, MaxRecursion -> 0, PlotPoints -> 160, ContourStyle -> Opacity[0.45], Mesh -> None, ColorFunction -> Function[{x, y, z, f}, ColorData["Rainbow"][z]], AxesLabel -> {x, y, z}]   
 
For å kutte gjennom konturene brukte jeg alternativet!
RegionFunction -> Function[{x, y, z}, x < z || z > y]  For å kontrollere at datapunkttettheten er ansvarlig for formen på konturer kan vi bruke Graphics3D 
pic = Graphics3D[{ColorData["DarkRainbow"][#[[3]]], PointSize -> Large, Point[#]} & /@ data, Boxed -> False]; Show[con, pic]   
 
BR
EDIT
For å følge opp på 2D-eksemplet og få varme farger for høyere tetthet
 data = RandomReal[1, {500, 3}]; dist = SmoothKernelDistribution[data]; ContourPlot3D[Evaluate@PDF[dist, {x, y, z}], {x, -2, 2}, {y, -2, 2}, {z, -2, 2},PlotRange -> All, Mesh -> None, MaxRecursion -> 0, PlotPoints -> 150, ContourStyle -> Opacity[0.45], Contours -> 5, Mesh -> None, ColorFunction -> Function[{x, y, z, f}, ColorData["Rainbow"][f/Max[data]]], AxesLabel -> {x, y, z}, RegionFunction -> Function[{x, y, z}, x < z || z > y]]   
 
Kommentarer
-  Kan ' t du bruker ListContourPlot3D, rediger nevermind, resultatet er fryktelig.
- Stor takk, det skriptet med redigeringen gjør akkurat arbeidet! En ting hvis jeg kombinerer punktbildet med konturplottet, får jeg følgende: oi47.tinypic.com/34g7otd.jpg Jeg markerte området som er unntatt fra konturplottet, men inneholder noen punkter …
-  @ user1936577 Vennligst vurder å bruke et enklere brukernavn;) Nå må du også bruke samme ekskludering på poengene dine, slik at alle punkter ikke vises. Du kan bruke CasesellerSelectfor å velge de aktuelle punktene.
- bare endret navnet;) Men jeg vil å vurdere alle punktene i ContourPlot og nå lurer jeg ' på dette området som jeg markerte i lenken over
Svar
 Koden nedenfor (tilpasset fra  her ) gir en utgang som ligner på funksjonen Image3D som dessverre bare er tilgjengelig for  Mathematica  versjon 9. 
Noen tilfeldige 3D-data:
data = RandomReal[{-3, 3}, {5000, 3}]; Her spesifiserer vi domenet til kassen (-3, 3) og binningoppløsningen:
binning = {-3, 3, .5}; Den faktiske koden som skal produseres figuren:
binned = BinCounts[data, binning, binning, binning]; dims = Dimensions@binned; normbinned = N[binned/Max[binned]]; coordswithdataAll = Table[{normbinned[[x, y, z]], {x, y, z}}, {x, 1, dims[[1]]}, {y, 1, dims[[2]]}, {z, 1, dims[[3]]}]; coordswithdata = Table[Select[coordswithdataAll[[j, i]], #[[1]] != 0 &], {j, dims[[1]]}, {i, dims[[1]]}]; cubes = {ColorData["Rainbow"][#1], Opacity@#1, EdgeForm[], Cuboid@#2} &; output = ParallelMap[cubes @@ # &, coordswithdata, {3}]; Graphics3D[output, PlotRange -> Transpose[{ConstantArray[1, 3], dims + 1}], Lighting -> "Neutral"]   
 
Kommentarer
- stemmer for deg 🙂
- +1 for å være mye, mye raskere enn svar 1.
Image3D…