How do I plot three variables against each other?

I have a list of lightning flahses, each flash has a latitude, longitude, and a power. All three of these are lists, not matrices.
I would like to plot a 3D plot, where x is longitude, y is latitude, and each dot is color coded to represent its power at the latitude and longitudinal locations.
How do I do this using three lists? The 3d plotting functions, like imagesc, require a matrix as the third value.
Thanks!

 Respuesta aceptada

Star Strider
Star Strider el 28 de Jun. de 2019
Try this:
lat = rand(10,1); % Create Vector
lon = rand(10,1); % Create Vector
power = randi(9,10,1); % Create Vector
figure
scatter3(lat(:), lon(:), power(:), [], power(:), 'filled')
grid on
This will colour them by the ’Z’ (’power’) value. The fourth argument [] is the size reference, and since you may want them all the same size, that argument is the empty array.

6 comentarios

Sophia Salazar
Sophia Salazar el 28 de Jun. de 2019
It produced this error: Error in color/linetype argument.
Star Strider
Star Strider el 28 de Jun. de 2019
It works with simulated data in R2019a.
I would have to see at least a representative sample of your data to see what the problem is.
What version of MATLAB are you using?
R2018b. I copied and pasted your code into my command window and it worked, but I am not sure why my code doesnt. Latitude, Longitude, and PeakCurrentQuarter are all 393413x1 double.
figure(5); clf;
hold on
scatter3(Latitude(:), Longitude(:), PeakCurrentQuarter(:), [], PeakCurrentQuarter(:), 'filled ')
grid on
hold off
I tried my code with vectors of your size data, and even using randn for the ‘power’ vector to see if negative values could be the problem. It worked (including the colour mapping) with all of those, and ran without error.
Something is wrong somewhere, and it seems to be with your variables.
Run the whos function with your variables, and post back the result:
whos('lat','lon','power')
This is just an example, use the variable names you are using in your code.
It is also possible that you are not using the latest MATLAB updates. See: 2018b Update 3 for the update procedure.
Sophia Salazar
Sophia Salazar el 28 de Jun. de 2019
Name Size Bytes Class Attributes
Latitude 393413x1 3147304 double
Longitude 393413x1 3147304 double
PeakCurrentQuarter 393413x1 3147304 double
Star Strider
Star Strider el 28 de Jun. de 2019
I have no idea what the problem could be.
I would need at least a representative sample of your data to see what the problem is (assuming I could reproduce it).

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Geographic Plots en Centro de ayuda y File Exchange.

Preguntada:

el 28 de Jun. de 2019

Comentada:

el 28 de Jun. de 2019

Community Treasure Hunt

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

Start Hunting!

Translated by