8 Downloads
Updated 31 Jan 2005
No License
FUNCTION PLOT3C(X,Y,Z,V,'MARKER',Title') plots the values in vector v colour coded at the positions specified by the vectors x, y, and z in a 3-D axis system. A colourbar is added on the right side of the figure.
The colorbar strectches from the minimum value of v to its maximum in 9 steps (10 values).
The second last argument is optional to define the marker being used. The default is a point. To use a different marker (such as circles, ...) send its symbol to the function (which must be enclosed in '; see example).
This function is an extension of PLOTC.
Example:
The seismic P-velocity (v) depends on the three parameters porosity (por) and the bulk moduli of the saturating fluid (kf) and the elastic frame (kd). To plot the velocity data as a function of these three parameters use (assuming that all data are given in vectors):
plot3c(por,kd,kf,v,'d','Velocity')
Ulrich Theune (2021). plot3c (https://www.mathworks.com/matlabcentral/fileexchange/5735-plot3c), MATLAB Central File Exchange. Retrieved .
Inspired: Color coded 3D scatterplot, qgriddata
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Create scripts with code, output, and formatted text in a single executable document.
Hi, I also have a problem with the colormap, which was only "partly" resolved with the comment of EvilDrW below.
The colour map has the various tick marks and seem to give the correct minimum and maximum, but the entire map is of one single colour (e.g. red) as opposite to going from blue to red.
I really like plot3c, but I recently ran into problems with the color bar not working right. I changed lines 61-63 to
limits = get(h, 'Limits');
yal=linspace(limits(1),limits(2),10);
set(h,'Ticks',yal);
and this seemed to solve the problems.
Thanks for sharing!
very useful..
Thanks for sharing!
Very nice tool. Would be nice if previous made comments on speed improvements could be implemented. But still a nice tool.
GREAT, THANKS!
Another question:
If one want to plot a cross section of those points(xzy), what will be the suitable function?
Sorry for basic question but I have tried to included without good results.
Thx, J
basic but effective.
Hi, I'm new to matlab and I'm sure this is the function I've been looking for! My data are three vectors (coordinates) x, y and z. This is probably a stupid question but how do I define v?
Great !!! That's what I've been searching for a year. Very good job, thank you!
it is a nice script for researchers.
Does exactly what I wanted... had an xyz data file from a calculation, and needed to plot the intensity (z) as a function of x and y. It worked with your *.m file. You've given me faith in my calculation!
yes... but very slow indeed !!!
it uses a FOR that is known to be slow !
to be a good code it should plot all point at once with their (variable) colors
I like your code,quite appreciate for contribute this
however,the interactive colorbar shift doesn't seem to work
I want to make some modification to your code to enable this,but with no clue
can you help me ?
Good, extreamly useful if you have unstructured x,y,z tripples but very slow if you have more than a couple of thousand data points. I've been using this for plotting CFD dumps and it works well if you use it to take a slice through the data. I've tried to speed it up by having all the points plotted at once but to no avail, somebody with more experteese needs to have a go!
very useful - thank you!
I love it, looks fantastic. However,you plot them point by point, that makes it pretty slow. If you can make it faster I believe there should be a lot more people use this function :) Thanks a lot.
very good!!