How to plot a 2nd Yaxis on a 2D plot

I am wanting to plot a second Y axis on my 2D plot.
I need to include 'Elevation' from the textread line
So my plot should be, left yaxis = Bougeur Anomaly, right Yaxis = Elevation, Xaxis = Profile
My code so far
%% Program for reading data from txt file
clear all;
close all;
main_path = 'C:\Users\user\Documents\';
print_check = 1;
data_path= strcat(main_path, 'Data\gobs_elevation_2021.txt');
scriptname = mfilename( 'fullpath' );
%% Read data file
[Profile Elevation gobs]=textread(data_path,'%f %f %f', 'headerlines', 1);
FreeAir = 3.086*Elevation;
Bouguer = 0.4192*2.65*Elevation;
gLat = -8.108*sind(2*52);
gBAnom = gobs+gLat+(FreeAir-Bouguer);
%%Simple Plot
fig1=figure('Position',[10 10 550 550])
hold on
plot(Profile, gobs,'.k','Markersize',8)
plot(Profile, gBAnom,'.r','Markersize',8)
% hold on
% plot(depth,fit,'Linewidth', 2,'LineStyle','--','Color',[0.17 0.3 0.34])
grid on
%xlim([0 100])
%ylim([-10 10])
%set(gca,'YDir','reverse')
set(gca,'YDir','reverse')
set(gca,'XDir','reverse')
xlabel('Profile [m]','FontSize',16)
ylabel('Bougeur Anomaly','FontSize',16)
thetitle = 'Effect of a Sphere';
title(thetitle,'FontSize',16);

Risposte (4)

Star Strider
Star Strider il 28 Mar 2021

0 voti

If you have R2016a or later, use the yyaxis function. For earlier versions, use plotyy.

3 Commenti

First, the ylim call must be:
ylim([45 70])
With that change, the code in this Comment should work.
Thank you
My pleasure!
If my Answer helped you solve your problem, please Accept it!
.

Accedi per commentare.

nicholas moran
nicholas moran il 28 Mar 2021

0 voti

So far I can't get the third variable;
%% Program for reading data from txt file
clear all;
close all;
main_path = 'C:\Users\user\\';
print_check = 1;
data_path= strcat(main_path, 'Data\gobs_elevation_2021.txt');
scriptname = mfilename( 'fullpath' );
%% Read data file
[Profile Elevation gobs]=textread(data_path,'%f %f %f', 'headerlines', 1);
FreeAir = 3.086*Elevation;
Bouguer = 0.4192*2.65*Elevation;
gLat = -8.108*sind(2*52);
gBAnom = gobs+gLat+(FreeAir-Bouguer);
%%Simple Plot
fig1=figure('Position',[10 10 550 550])
hold on
x = Profile;
y = Bouguer;
yyaxis left
plot(Profile,Bouguer)
z = Elevation;
yyaxis right
plot(x,z)
ylim([70 45])
% hold on
% plot(depth,fit,'Linewidth', 2,'LineStyle','--','Color',[0.17 0.3 0.34])
grid on
%xlim([0 100])
%ylim([-10 10])
%yylim9([45 75])
%set(gca,'YDir','reverse')
set(gca,'YDir','reverse')
set(gca,'XDir','reverse')
xlabel('Profile [m]','FontSize',16)
ylabel('Bougeur Anomaly','FontSize',16)
yylabel('Elevation''FontSize',16)
thetitle = 'Effect of a Sphere';
title(thetitle,'FontSize',16);
Error using ylim (line 31)
Limits must be a 2-element vector of increasing numeric values.
Error in Test (line 32)
ylim([70 45])
nicholas moran
nicholas moran il 28 Mar 2021
Modificato: nicholas moran il 28 Mar 2021

0 voti

Trying to achieve this but with Elevation on the other Yaxis:

Categorie

Richiesto:

il 28 Mar 2021

Commentato:

il 29 Mar 2021

Community Treasure Hunt

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

Start Hunting!

Translated by