Issue with saving a plot with two y axis
5 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hello
I have written a code that gives me a plot with two y axis like this:
But when I save it, something goes wrong and gives me following image? Is there a setting or piece of code that I should add to my code?
Thanks in advance for possible solutions.
clear
clc
close all
A = readmatrix ('Y2.270970e+02.csv');
col = jet(6);
xa = A(2:end,1);
y_all= A(1,2:end);
za = A(2:end,2:end) ;
k = [140;150;163;175;186;198;210;221;233;245];
r1 = [35;35;33;31;29;28;27;26;24;24];
r2 = [38;39;37;34;33;32;31;29;27;26];
r3 = [51;50;49;49;42;45;45;44;42;42];
r4 = [54;54;53;52;48;47;48;47;45;44];
for B = 1:10;
g = k(B,1);
w(B) = xa(g,1).*10^-9;
E = (((6.626*10^-34)*(2.9979*10^+8)/(1.602*10^-19))./w);
m1 = r1(B,1);
m2 = r2(B,1);
m3 = r3(B,1);
m4 = r4(B,1);
% zz1 is the Line number of W to be plotted
zz1 = k(B,1);
ya = y_all(1,m1:m2);
zc = za(zz1,m1:m2);
% plot (ya,za(zz1,34:38));
% hold on
[fitresult, gof] = createFit1(ya, zc);
hold on
x= linspace(min(xa),max(xa),100);
% plot (xa,fitresult(xa),'linewidth',2);
% hold on
a_first(B) = fitresult.a1;
b_first(B)= fitresult.b1;
c_first(B) = fitresult.c1;
sigma_first(B) = c_first(B)./2;
width_first(B) = 2.355.*sigma_first(B);
yaa = y_all(1,m3:m4);
zcc = za(zz1,m3:m4);
% plot (yaa,za(zz1,48:54));
% hold on
[fitresult, gof] = createFit11(yaa, zcc);
hold on
x= linspace(min(xa),max(xa),100);
% plot (xa,fitresult(xa),'linewidth',2);
hold on
a_second(B) = fitresult.a1;
b_second(B) = fitresult.b1;
c_second(B) = fitresult.c1;
sigma_second(B) = c_second(B)./2;
width_second(B) = 2.355.*sigma_second(B);
D(B)= b_second(B)-b_first(B);
Max_error (B) = abs((width_first(B)+width_second(B))./(2.*10^3));
Min_error (B)= abs((width_first(B)-width_second(B))./(2.*10^3));
end
n = (2.*pi.*10^3)./[D]
errorbar(n,E,Min_error,Max_error,'d','horizontal')
scatter(n, E,30,'k','filled','d');
xlabel ('k||.distance^-^1 / rad.um^-^1)');
ylabel ('Photon Energy / eV');
% Create second Y axes on the right.
a2 = axes('YAxisLocation', 'Right');
% Hide second plot.
set(a2, 'color', 'none');
set(a2, 'XTick', []);
% Set scala for second Y.
set(a2, 'YLim', [550.71 640.61]);
set(gca, 'YDir','reverse');
ylabel('wavelength / nm');
clc
Réponses (0)
Voir également
Catégories
En savoir plus sur Specifying Target for Graphics Output dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!