2014-09-08 2 views
0

У меня есть три переменные, которые я хочу построить на одной фигуре (температура, соленость, хлорофилл). Данные разделяются на две переменные: «plume» и «P7_3m». Они оба 8x5 матрицы с векторами столбца,Два графика на ось с использованием addaxis

[date salinity temperature attenuation chlorophyll].  

Я имел успех с ADDAXIS от http://www.mathworks.com/matlabcentral/fileexchange/9016-addaxis.

Проблема заключается в том, что я хочу построить две линии (одно сплошное, другое пятно) одного цвета для каждой из трех переменных для сравнения между плюмом и P7_3m. Ось x - «xt» и помечена «месяцами». Ниже приведен код, который у меня есть и не работает, поскольку после использования ADDAXIS ручка осей возвращается к исходной первой оси графика. Есть ли способ доступа к оси, построенной ADDAXIS? Поэтому я могу построить свою пунктирную линию на той же оси, что и сплошная линия, созданная ADDAXIS?

Буду признателен за вашу помощь и время. Заранее спасибо!

Ая

figure; % start making the figure 
ss=20; % setting up the plot 
set(0,'DefaultAxesFontSize', ss) 
set(0,'DefaultLineLineWidth',3) 

months={'Jan','Feb','Mar','Apr','May','Jun','Jul','Aug'}; % x axis 
xt=[1:length(months)]; 
set(gca,'xtick',xt) 
set(gca,'xticklabel',months, 'fontsize', ss) 
plot(xt,plume(:,2),'b') % plot first plot, salinity 
hold on 
plot(xt,P7_3m(:,2),'--b') 
haxes1 = gca; 
set(haxes1,'XColor','k','YColor','b') 
addaxis(xt,plume(:,3),'r') 
plot(xt,P7_3m(:,3),'--r') 
addaxis(xt,plume(:,5),[0 12],'color',[0 0.5 0]) 
plot(xt,P7_3m(:,5),'color',[0 0.5 0]) 
xlabel('months') 
ylabel('Practical Salinity') 
addaxislabel(2,'Potential Temperature (^{\circ}C)') 
addaxislabel(3, 'Chlorophyll a Fluorescence (ug/l)') 

ответ

0

Похоже, что вам нужно использовать addaxisplot. Это должно сделать это:

figure; % start making the figure 
ss=20; % setting up the plot 
set(0,'DefaultAxesFontSize', ss) 
set(0,'DefaultLineLineWidth',3) 
hold on 

months={'Jan','Feb','Mar','Apr','May','Jun','Jul','Aug'}; % x axis 
xt=[1:length(months)]; 
set(gca,'xtick',xt) 
set(gca,'xticklabel',months, 'fontsize', ss) 

% Plot on first axis. 
plot(xt,plume(:,2),'b') % plot first plot, salinity 
plot(xt,P7_3m(:,2),'--b') 
set(gca,'XColor','k','YColor','b') 

% Plot on second axis. 
addaxis(xt,plume(:,3),'r') 
addaxisplot(xt,P7_3m(:,3),2,'--r') 

% Plot on third axis. 
addaxis(xt,plume(:,5),[0 12],'color',[0 0.5 0]) 
addaxisplot(xt,P7_3m(:,5),3,'--','color',[0 0.5 0]) 

% Add labels. 
xlabel('months') 
addaxislabel(1, 'Practical Salinity') 
addaxislabel(2, 'Potential Temperature (^{\circ}C)') 
addaxislabel(3, 'Chlorophyll a Fluorescence (ug/l)') 

Как в стороне, это действительно помогает, если вы сделаете отдельный пример. В этом случае было бы здорово, если бы вы включили некоторые фиктивные данные для plume и P7_3m. Это не большая проблема в этом случае, как вы их описали, и я просто использовал rand для создания чего-то, но, возможно, что-то, что поможет в будущем.

+0

Большое вам спасибо за ваш ответ! Это было то, что я надеялся найти в addaxisplot! Спасибо за подсказку, в будущем я предоставил фиктивные данные, чтобы было легче понять мою проблему. – Aya

+0

Отлично, я рад, что это помогло :-) – sclarke81

Смежные вопросы