File Exchange

image thumbnail

plot3c

version 1.0 (2.2 KB) by

Plots data color coded in 3D.

4.57143
14 Ratings

14 Downloads

Updated

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')

Comments and Ratings (17)

EvilDrW

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.

Juan

Juan (view profile)

Thanks for sharing!
very useful..

Huaxi Zheng

Thanks for sharing!

Jean Paul

Very nice tool. Would be nice if previous made comments on speed improvements could be implemented. But still a nice tool.

Jul Smith

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

mathworks2011

basic but effective.

J G

J G (view profile)

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?

Le

Le (view profile)

Great !!! That's what I've been searching for a year. Very good job, thank you!

john doe

Jason Lee

it is a nice script for researchers.

Jon Morris

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!

igor scardanzan

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

jindi li

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 ?

Tim Hattrell

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!

Josef Pronek

very useful - thank you!

Kittipat Bot

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.

jeily cervantes

very good!!

Updates

Changed the code routine to print the labels (less messy now, hopefully) and added an optional title for the colorbar.

MATLAB Release
MATLAB 6.1 (R12.1)
Acknowledgements

Inspired: qgriddata, Color coded 3D scatterplot

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video