Creating a scatter plot with three variables.

Hello, I am trying to create a scatter plot of some rain gauge data. I have three columns with data in them. My X variable is for Longitude, Y is Latitude and Z would be the rainfall totals. Each variable is a 31x1 double array. How can I get the Z variable to show up as individual points on the graph with color representing higher values?

 Accepted Answer

This uses the value of ‘Z’ to scale the colors:
x = 1:20;
y = 1:20;
[X,Y] = ndgrid(x,y); % Create Grids
Z = (X - 10).*(Y - 10); % Create ‘Z’
figure
scatter3(X(:), Y(:), Z(:), [], Z(:), 'filled') % Use ‘Z(:)’ To Scale Colors
Experiment to get the result you want with your data.

6 Comments

Thanks for the feedback. This made the plot, however I am not trying to make a 3d plot. It has to be a 2d plot with
c = load('coast');
hold on;
u = load('us_state_map.mat');
as my grid.
Try this:
x = 1:20;
y = 1:20;
[X,Y] = ndgrid(x,y); % Create Grids
Z = (X - 10).*(Y - 10); % Create ‘Z’
figure
scatter(X(:), Y(:), [], Z(:), 'filled')
That should do what you want.
Thank you, this worked
My pleasure.
If my Answer helped solve your problem, please Accept it!

Sign in to comment.

More Answers (1)

I would use scatterm, something like
scatterm(X,Y,5,Z)
The reference page can be found at
HTH

2 Comments

Thank you for your answer, when I use this I get an error message that says "error using gcm: Not a map axes"
I thought you want to plot lat and lon on a map.

Sign in to comment.

Categories

Community Treasure Hunt

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

Start Hunting!