File Exchange

image thumbnail


version (1.19 KB) by Ulrich Theune
Plots data color coded in 3D.


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.

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


Cite As

Ulrich Theune (2021). plot3c (, MATLAB Central File Exchange. Retrieved .

Comments and Ratings (18)

Camille Bilger

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

and this seemed to solve the problems.


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

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!

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!!

MATLAB Release Compatibility
Created with R12.1
Compatible with any release
Platform Compatibility
Windows macOS Linux

Inspired: Color coded 3D scatterplot, qgriddata

Community Treasure Hunt

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

Start Hunting!