Is it possible to make a scatter plot for multidimensional data of more than 3 columns?

5 views (last 30 days)
I have 2 sets of data X and Y.
X is a 32x7 dataset and Y is a 8x7 dataset
I want to plot a single scatter figure comprising both of them with different colors for each row of Y
I have already used the scatter3 function but it is useful for only 3 columns of dataset and am not able to plot for the whole dataset.
Does anybody have an idea about how to do it?
Thanking you in anticipation.
Regards Amita
  2 Comments
Adam
Adam on 5 Jun 2015
How would you expect 7 dimensional data to be visualised? If there was a simple way to do so it would be a monolithic step forward in science!
AMITA
AMITA on 5 Jun 2015
Can you then kindly suggest as to how it can be achieved by reducing the number of columns of the data accordingly?

Sign in to comment.

Answers (1)

Walter Roberson
Walter Roberson on 5 Jun 2015
The attributes you can manipulate on a point-by-point basis for scatter plots are:
  1. X coordinate
  2. Y coordinate
  3. Z coordinate
  4. point-size
  5. color
  6. marker
  7. marker edge color
The first 5 of those can be easily set per-point in a scatter3() call, and they can all be made more or less continuous.
In any one scatter3() call there can be only one Marker Edge Color, but at least it can be made more or less continuous. On the other hand, when you have a marker that might be small, distinguishing the edge color from the marker color might be difficult. Either way, if you use Marker Edge Color as a "dimension" then you need to make one scatter3() call for each different Marker Edge Color that you use.
In any one scatter3() call there can be only one Marker, and there are a limited number of marker styles -- only 13, and some of them can be difficult to distinguish when they are small. Humans have no natural hierarchy for shapes other than possibly ordered by number of vertices in the polygon: circle, triangle, square, pentagon, hexagon. You could use the shape to distinguish sets of data, but not really to order data, not beyond those 5. If you use Marker as a "dimension" then you need to make one scatter3() call for each different Marker that you want to use.
Instead of using scatter you could "draw" objects in space. That could increase your number of shapes, but keep in mind that humans do not naturally order by shape. The one thing that "drawing" the objects can add is Transparency, that you can distinguish objects by Transparency. In isolated items that is exactly the same thing as changing color and you do not gain anything. However, when items overlap, Transparency can allow you to help distinguish situations. It does not form a good ordering (distance on a dimension) but it can be used to make "distant" items more blurry.
Realistically only the first 5 properties listed above are suitable for ordering points.
Beyond that, there are techniques such as having the overall space rotate, "projecting" to the space that can be displayed but moving to turn the hidden parts outwards over time. There used to be a nice software package for doing Projection Pursuit that did that kind of displaying; unfortunately I really don't remember the package name (it was many years ago.)

Categories

Find more on Line Plots in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!