построить несколько графиков с осью 2 y в 1 графике - PullRequest
0 голосов
/ 21 марта 2010

В настоящее время у меня есть текстовый файл с данными в первой строке, отформатированный следующим образом: время; высота волны 1; высота волны 2; ....... У меня есть столбец до высоты волны 19 и строк всего 4000 строк.

Данные в первом столбце - это время во втором. Начиная со 2-го столбца это высота волны в метрах.

Я хотел бы построить следующее:

по оси X - время. левая часть - высота волны в м а справа - расстояние между каждым измерением в модели.

внутри графика есть 4 графика, каждый график представляет собой волну 1, высоту волны 2etc на определенном расстоянии, относящемся к правой стороне y asix.

Как бы вы написали это в matlab?

Я начинающий, пожалуйста, если сможете, будет очень полезно дать немного больше объяснений в вашем ответе! Я пытался опубликовать картинку, чтобы прояснить ситуацию, но stackoverflow не позволяет мне это сделать. Если неясно, пожалуйста, свяжитесь со мной, и я могу отправить вам по электронной почте график, который я имею в виду для этого вопроса.

Спасибо !!!!!!!!!!

Ответы [ 2 ]

1 голос
/ 21 марта 2010

Если у вас есть 2 набора данных разных единиц / шкал, вы можете использовать plotyy. Тем не менее, в случае, который вы описали здесь, кажется, что mesh может быть лучшим выбором, давая одну поверхность 3d-сетки, или plot3, создавая отличительные линии в трехмерном пространстве.

0 голосов
/ 23 марта 2010

Что вы подразумеваете под "расстоянием между каждым измерением в модели", когда говорите о шкале y справа?

Учитывая некоторые данные, которые выглядят так:

#Time               #Wave Height         #Distance Between Measurements(?)
 0000                1.00                 1.00
 0001                1.13                 0.81
 0003                1.58                 0.73
 ...                 ...                  ...
 4000                0.23                 1.19

Если вектор, содержащий все элементы столбца Time, называется times, вектор с высотой волны называется waveHeights, а вектор с расстояниями называется distances, вы можете использовать plotyy() следующим образом:

[AX,H1,H2] = plotyy(times,waveHeights,times,distances,'plot');

set(get(AX(1),'Ylabel'),'String','Wave Height') 
set(get(AX(2),'Ylabel'),'String','Distance Between Measurements')
xlabel('Time (s)')

Первая строка содержит фактические графики, а последние три добавляют метки к осям.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...