How to do line plot with time sequence?

Hi,
I have altitude, density and time data. How can I do line plotting with time sequence, i.e. time, altitude and density in x-, y- and z- axis, respectively (same as one plot attached but without arrows). I don't need contour plot. The density data is different at different times ( I mean sometime less than earlier values). I am using Matlab2015a.
Thank you so much..
Thank you.

3 Comments

Interesting plot...I presume each of the lines above is at a fixed time and the apparent shift is a projection based on height? Not sure otomh of a way to do routinely in ML--have to think about that some.
If you want somebody to explore on your behalf, though, you'll have a lot more chances if you post at least a minimal dataset for folks to play with...
I tried all I could, like, plot3,waterfall,line, plot indivual line, etc..but did not get what I want. here is the dendisy data attached.
code for time and altitude;
time=1:11;altitude=80;0.5:115;
I think it is the time series (x-axis) of density with altitude along y-axis.

Sign in to comment.

 Accepted Answer

See if waterfall() meets your needs. Or else plot x vs. y for every y vector, moving it along a little bit each time along the x direction b y adding a tiny bit to the y signal.

4 Comments

I tried with waterfall(). It doesnot work for me. I think second suggestion might work but I don't know how to move x- a littele bit in plotting. Can you please help me. Thank you.
Try this. Change xIncrement to whatever spacing you think looks best.
% Custom made waterfall plot for Madan by Image Analyst.
clc; % Clear command window.
clear; % Delete all variables.
close all; % Close all figure windows except those created by imtool.
workspace; % Make sure the workspace panel is showing.
format long g;
format compact;
fontSize = 18;
markerSize = 20;
fprintf('Beginning to run %s.m ...\n', mfilename);
data = importdata('density.txt')
[rows, columns] = size(data)
xIncrement = 200; % Whatever spacing you want.
for col = 1 : columns
thisColumn = data(:, col)
x = thisColumn + col * xIncrement;
y = 1 : length(thisColumn);
plot(x, y, '-', 'LineWidth', 2);
hold on;
end
ylabel('Height (km)', 'FontSize', fontSize);
xlabel('Time (in AST)', 'FontSize', fontSize);
grid on;
g = gcf;
g.WindowState = 'maximized'
fprintf('Done running %s.m ...\n', mfilename);
It looks cool but problem is that the x-axis is not time. You have plotted x vs y and x is density here (if I am n't wrong). Altitude is also starting from 0 (zero), it should start from 80 km. I need to plot time(in x-axis), altitude (y-axis) and density; I mean time series of altitude vs density profile. I also tried to use "ax.position" after plotting but no success.
So just get rows instead of columns or vice versa, or plot y vs x instead of x vs y. I think you can figure out the adaptations needed since you're a smart engineer. Let me know if you still can't, and what the rows and columns of the array represent and which (rows or columns) is supposed to go along each axis.

Sign in to comment.

More Answers (0)

Categories

Find more on Graphics Performance in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!