# How to change Point Markers in a ListPointPlot3D

GROUPS:
 I want to show three lists in one ListPointPlot3D plot. Mathematica shows each list with differently colored points. However, I'd like to indicate the different sets using different point markers. How can I do this?Show[ListPointPlot3D[{list1, list2, list3}, PlotStyle -> PointSize[0.03], Filling -> Bottom, AspectRatio -> 0.8]]Many thanks for any advice!
4 years ago
8 Replies
 Right click on your graphand select "Drawing Tools". There will be an option for "points". You can select the points on your graph then modify them with this option.
4 years ago
 Many thanks! However, I was wondering whether it is possible to use an option similar to "PlotMarkers" that works with ListPlot and ListLinePlot but for some reason not with ListPointPlot3D.
4 years ago
 Bruce Miller 1 Vote There isn't a "PlotMarkers" for ListPointPlot3D. One can disembowel the data structure for the graphic and change Points to Text or graphics primitives, but that is a lot of work. list1 = Table[Sin[j^2 + i], {i, 0, 3, 0.1}, {j, 0, 3, 0.1}];list2 = Table[Sin[j + 2 i], {i, 0, 3, 0.1}, {j, 0, 3, 0.1}];list3 = Table[Sin[j - i], {i, 0, 3, 0.1}, {j, 0, 3, 0.1}];lpp3 = ListPointPlot3D[{list1, list2, list3}, PlotStyle -> PointSize[0.03]]Look at the top of the internal data structure.FullForm[lpp3]Graphics3D[List[List[Directive[Hue[0.67, 0.6, 0.6], PointSize[0.03]],Point[List[List[1., 1., 0.], List[1., 2., 0.09983341664682815],List[1., 3., 0.19866933079506122], ...It would probably be easier to start with the lists of point coordinates, make them 3D, list1 = Table[{i, j, Sin[j^2 + i]}, {i, 0, 3, 0.1}, {j, 0, 3, 0.1}];list1 = Flatten[list1, 1]create a function that makes pretty items at those coordinates, and use Graphics3D to turn those into a plot. mkPoint[{x_, y_, z_}] := {Green, Text["\[FilledDiamond]", {x, y, z}]}Graphics3D[ Map[mkPoint, list1]]
4 years ago
 Many thanks, Bruce! The second approach worked nicely! As you suggested, I created for each list a separate "function that makes pretty items" and then combined these with Show and Graphics3D.
4 years ago
 Christopher French 1 Vote The look of the ListPointPlot3D output can be controlled by manupulating the resulting Graphics3D expression internals. Starting with the lpp3 example given by Bruce, extract the directives for primitives in the graphic.colors = Cases[lpp3, Directive[__], 7]{Directive[Hue[0.67, 0.6, 0.6], PointSize[0.03]], Directive[Hue[0.906068, 0.6, 0.6], PointSize[0.03]], Directive[Hue[0.142136, 0.6, 0.6], PointSize[0.03]]}newcolors = Thread[colors -> {Directive[Red, PointSize[0.03]], Directive[Green, PointSize[0.03]], Directive[Blue, PointSize[0.03]]}];Show[lpp3 /. newcolors, SphericalRegion -> True]Any graphics directives replacements you would like can be used. Here I wrapped the new result in Show to also change a display option. SphericalRegion will help prevent 3D graphics from jumping around on you after being rotated to the desired viewing angle.