MATLAB Answers

How can I create this 2D waterfall plot?

162 views (last 30 days)
onamaewa
onamaewa on 11 Apr 2019
Commented: Adam Danz on 21 Sep 2020
The data is from a CSV file with one time column and 32 columns of data.
The curves show the Amplitude vs. Time behavior of the sensors while the sensor locations (in meters) are placed on the Y-axis.
I assume this is a waterfall plot, but I can't reproduce it. How can I make a graph like this one?

  4 Comments

Show 1 older comment
onamaewa
onamaewa on 11 Apr 2019
I tried plotting the data using:
figure()
[X, Y, Z] = signal(time)), position, signal(amplitude)
waterfall(x, y, z)
It didn't work.
Adam Danz
Adam Danz on 11 Apr 2019
I don't know what "it didn't work" means. Does that mean you got at error? Does that mean the plot produced something unexpected?
Did you try the simple plot I suggested?
What do your data look like? How are they organized? Is each column of your matrix one of the lines that is represented in the graph you shared?
I'm working with virtually 0 information so it's hard to make suggestions or to help you without (much) more info.
Adam Danz
Adam Danz on 9 May 2020
Update: a recent file exchange pick-of-the-week resembles a waterfall plot but does not resemble the image in the question.

Sign in to comment.

Accepted Answer

Steven Lord
Steven Lord on 11 Apr 2019
That's not a waterfall plot, at least not by my understanding. To me a waterfall plot looks like the picture shown on the waterfall function documentation page.
What you've shown looks more like the "Plot Multiple Lines" or "Create Line Plot From Matrix" examples on the documentation page for the plot function, though your multiple lines look like their Y data is different enough that the lines don't overlap. In that I agree with Adam Danz, that plot is probably the right tool for this job.
If neither of those look like what you want, open the Plots tab on the Toolstrip and click the downward pointing triangle in the PLOTS section. Scan through the thumbnails to see if one looks like what you want. Once you've found such a thumbnail ask for help or doc on the function name written under the picture, or open up the Catalog (the button in the lower corner of the PLOTS dropdown) and locate the thumbnail / function of the same name to see the documentation page for that function.

  0 Comments

Sign in to comment.

More Answers (3)

srt10
srt10 on 29 Aug 2019
That plot does look like a waterfall plot. You can obtain a plot like that by trying
figure()
waterfall(time,position,data)
Here time is your time vector and position is a 1x32 vector that corresponds to each column of your data. Make sure the matrix "data" is of the correct dimensions (length(time) x 32). You may rotate the resulting waterfall plot to get what is shown in the figure. Good luck!

  0 Comments

Sign in to comment.


d7366431
d7366431 on 9 May 2020
I am wondering what is the solution? How to obtain this chart? I have the same problem =)

  0 Comments

Sign in to comment.


Vladimir
Vladimir on 21 Sep 2020
Try stackedplot built-in plotting routine

  1 Comment

Adam Danz
Adam Danz on 21 Sep 2020
The use of stackedplot is not a solution in this case because each line in the demo image extends into the territory of the next line along the y-axis. With stackedplot, each line would have its own ylim which would prevent overlaping.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!

Translated by