#matlab #depth
#matlab #глубина
Вопрос:
У меня есть следующий сценарий
clear all; clc;close all;
dx = 0:100:400 % in meters
rho_30 = [ 33.2185 33.3202 33.4763 33.5851 33.6078];
rho_50 = [ 58.4567 58.1212 57.5382 56.8300 56.0449];
rho_70 = [76.1825 76.0842 75.9825 75.9252 75.9507];
plot(dx,rho_30, 'r', 'LineWidth', 2) % rho at depth = 30 meters
hold on
plot(dx,rho_50, 'b', 'LineWidth', 2) % rho at depth = 50 meters
hold on
plot(dx,rho_70, 'g', 'LineWidth', 2) % rho at depth = 70 meters
grid on
legend('rho at depth = 30m', 'rho at depth = 50m', 'rho at depth = 70m')
xlabel('length of channel (meters)'); ylabel('depth(meters)')
Как вы можете видеть из графика, глубина начинается с 80 м на поверхности до 30 м на дне.
Мой вопрос: как изменить, чтобы глубина начиналась с -30 на поверхности до -80 метров внизу или ylabel должна начинаться с -30 до -80
Комментарии:
1. вы имеете в виду
xticks
иxticklabels
? или саму метку?2. ylabel должен быть -30 на поверхности и -80 внизу, в то же время rho_30 (красный) должен быть помещен вверху, rho_50 (синий) посередине и rho_70 (зеленый) внизу.
3. Почему бы просто не построить график
-rho_30
,-rho_50
и-rho_70
вместоrho_30
,rho_50
иrho_70
?4. Луис Мендо, результаты будут неверными. Синий, например, будет увеличиваться.
5. Прошу прощения… Вы правы, Луис Мендо. Синий должен увеличиваться теперь после того, как ylabel отменен. Большое спасибо Луису Мендо.
Ответ №1:
Если вы хотите изменить направление оси Y, вы можете сделать:
set(gca,'YDir','reverse');
gca
возвращает дескриптор для текущего объекта axes . В этой set
команде вы устанавливаете направление оси y ( 'YDir'
) на 'reverse'
(в отличие от значения по умолчанию 'normal'
).
Комментарии:
1. Спасибо KQS. Это работает, но как изменить 30 на -30, а 80 на -80?
2. Вы можете использовать предложение @Luis Mendo (график
-rho_30
и т.д.). Это изменит все на отрицательное. И затем вы можете изменить направление оси Y, если это необходимо.3. Если вы действительно хотите изменить метки по оси y вместо данных, вы можете это сделать
set(gca, 'YTick',[30 40 50 60 70 80], 'YTickLabel',{'-30','-40','-50','-60','-70','-80'})
, но это довольно громоздко и легко ошибиться.