% Ceci est un mini tuto des possibilités de Matlab et de comment tracer % un graphe proprement. % Inspiré de Nicolas Tappy et Loïc Reymond % Par Fanny Eustachon, 2019 % Toujours tracer les graphes en script. % Le nom du fichier doit TOUJOURS être le même que celui de la fonction, si % c'est une fonction. % 4 étapes pour un bon script Matlab % - Constantes % - Acquisition des données % - Traitements des données (calculs) % - Figure (Graphe, nom, axe, légendes, sauvegarde) %% Declaration des constantes % Séparer les différentes constantes (physiques, géométriques, etc.) % Indiquer les unités permet d'éviter des confusions, par exemple K et °C %Constantes physiques: mu0 = 4*pi*1e-7; %[Unité - pourquoi pas?] g = 9.81 ; %[m.s^{-2}] c = 299792458; %[m.s^{-1}] %Constantes du système; R = 0.1 ; %[m] Msph = 45.78e-3; %[kg] %% Acquisition des données % Les données sont chargées au début du script, pour optimiser l'exécution % (surtout quand il y a des Go de données) % 3 manières principales de lire des données : % - en dur (déconseillé, mais juste pour l'exemple) lambda = [1.00000000000000e-09;3.12929292929293e-08;6.15858585858586e-08;9.18787878787879e-08;1.22171717171717e-07;1.52464646464646e-07;1.82757575757576e-07;2.13050505050505e-07;2.43343434343434e-07;2.73636363636364e-07;3.03929292929293e-07;3.34222222222222e-07;3.64515151515152e-07;3.94808080808081e-07;4.25101010101010e-07;4.55393939393939e-07;4.85686868686869e-07;5.15979797979798e-07;5.46272727272727e-07;5.76565656565657e-07;6.06858585858586e-07;6.37151515151515e-07;6.67444444444444e-07;6.97737373737374e-07;7.28030303030303e-07;7.58323232323232e-07;7.88616161616162e-07;8.18909090909091e-07;8.49202020202020e-07;8.79494949494950e-07;9.09787878787879e-07;9.40080808080808e-07;9.70373737373737e-07;1.00066666666667e-06;1.03095959595960e-06;1.06125252525253e-06;1.09154545454545e-06;1.12183838383838e-06;1.15213131313131e-06;1.18242424242424e-06;1.21271717171717e-06;1.24301010101010e-06;1.27330303030303e-06;1.30359595959596e-06;1.33388888888889e-06;1.36418181818182e-06;1.39447474747475e-06;1.42476767676768e-06;1.45506060606061e-06;1.48535353535354e-06;1.51564646464646e-06;1.54593939393939e-06;1.57623232323232e-06;1.60652525252525e-06;1.63681818181818e-06;1.66711111111111e-06;1.69740404040404e-06;1.72769696969697e-06;1.75798989898990e-06;1.78828282828283e-06;1.81857575757576e-06;1.84886868686869e-06;1.87916161616162e-06;1.90945454545455e-06;1.93974747474747e-06;1.97004040404040e-06;2.00033333333333e-06;2.03062626262626e-06;2.06091919191919e-06;2.09121212121212e-06;2.12150505050505e-06;2.15179797979798e-06;2.18209090909091e-06;2.21238383838384e-06;2.24267676767677e-06;2.27296969696970e-06;2.30326262626263e-06;2.33355555555556e-06;2.36384848484848e-06;2.39414141414141e-06;2.42443434343434e-06;2.45472727272727e-06;2.48502020202020e-06;2.51531313131313e-06;2.54560606060606e-06;2.57589898989899e-06;2.60619191919192e-06;2.63648484848485e-06;2.66677777777778e-06;2.69707070707071e-06;2.72736363636364e-06;2.75765656565657e-06;2.78794949494950e-06;2.81824242424242e-06;2.84853535353535e-06;2.87882828282828e-06;2.90912121212121e-06;2.93941414141414e-06;2.96970707070707e-06;3.00000000000000e-06]; P_S = [0;4.59172007926239e-19;0.685367601771792;454809.455216190;258061273.581846;9187157211.98786;84785999341.3154;369481211570.332;1021259735178.22;2103395535238.96;3549447514672.89;5206983222220.30;6902653351309.02;8489082779259.33;9865127017855.03;10976691296937.0;11807833930358.2;12369163182022.3;12687245271749.4;12796419285817.6;12733148928466.2;12532501728533.9;12226208195139.1;11841798262192.2;11402419009524.4;10927048523431.3;10430913635158.8;9925989176676.45;9421505543745.32;8924424187895.62;8439861616206.99;7971455235942.61;7521671703794.96;7092062287467.95;6683471455593.73;6296205360287.98;5930166627826.23;5584961276379.86;5259982844911.88;4954478064022.87;4667597691620.77;4398435503650.97;4146057882749.13;3909525984485.41;3687912075118.71;3480311317311.75;3285850021335.22;3103691169593.61;2933037853423.78;2773135125718.62;2623270664781.89;2482774558715.72;2351018451280.78;2227414236033.77;2111412442781.69;2002500426693.38;1900200443919.17;1804067676805.97;1713688255568.18;1628677310638.37;1548677080121.37;1473355089211.61;1402402412630.91;1335532026724.63;1272477254519.10;1212990304556.41;1156840902496.39;1103815013162.65;1053713649793.02;1006351766643.25;961557230713.915;919169868168.170;879040580936.792;841030529034.028;805010374204.504;770859580668.262;738465768911.196;707724118669.761;678536817472.396;650812551318.651;624466034295.421;599417574144.041;575592670999.787;552921646724.564;531339302443.109;510784602072.271;491200379801.377;472533069639.455;454732455292.211;437751438768.552;421545826243.354;406074129820.787;391297383951.088;377178975353.972;363684485394.227;350781543940.149;338439693813.730;326630265013.440;315326257956.595;304502235048.974]; % - depuis un fichier texte % data = load('P_S.out'); % lambda = data(:,1); % P_S = data(:,2); % clear data % ferme le fichier, pas necessaire mais toujours une bonne pratique % - depuis un fichier excel % data = 'P_S.xlsx'; % lambda = xlsread(data,1,'A2:A101'); % P_S = xlsread(data,1,'B2:B101'); % creer un vecteur d'une certaine taille : PSmax = ones(size(lambda)); %% Traitement % Matlab possède un nombre énorme de fonctions. Il est donc très possible % que si vous cherchez à faire une manipulation, matlab permet déjà de le % faire (maximum, moyenne, probabilité, chercher un pic dans un graphique, % etc.) lambda = lambda*1e6; %Longueur d'onde en [um] PSmax = max(P_S)*PSmax; %% Figure % a mettre au début du script. Permet de faire des figures afficher en % latex set(groot, 'defaultAxesTickLabelInterpreter','latex'); set(groot, 'defaultLegendInterpreter','latex'); set(groot, 'defaultTextInterpreter','latex'); % Déclaration de la figure (toujours nommer) fig_planck = figure('Visible', 'on'); % Si affichage du graphique ou non % Traçage de la courbe plot(lambda, P_S, 'bo') %x, y, couleur hold on % permet de tracer d'autres plot par dessus un plot plot(lambda, PSmax,'r-.') % Erreurs barres (x, y, err x lower bar, err upper bar, err y) % remplace la commande plot % errorbar(lambda,P_S,errlambda,errlambda,errPS,errPS,'bo') % Légendes, axes, titre set(gca,'fontsize',16,'XMinorTick','on') %propriétés de la figure title('Planck'); % Conseil, toujours mettre un titre xlbl = '$\lambda$\,[${\rm \mu}$m]'; %Titres d'axes - toujours courts xlabel(xlbl,'Interpreter','Latex'); %afficher le titre en latex, inutile si mit au début ylbl = 'P$_S$\,[W\,Ster$^{-1}$]'; ylabel(ylbl,'Interpreter','Latex'); leg = legend('T = 5000\,[K]','Maximum'); %Légende (à éviter si possible) set(leg,'Interpreter','latex','FontSize',16, 'Location', 'east'); grid minor % 'minor' pour petits carreaux, 'on' pour gros carreaux % Sauvegarde %De manière basique % nome = 'e_conv'; % saveas(gcf,nome,'epsc') % saveas(gcf,nome,'fig') %Exemples pour Enregistrer l'image avec IrrotSavePlot %Tout par défaut, nom Figure_n ou Figure.Name si attribué, eps, 8.9x6.0 cm IrrotSavePlot(fig_planck); % Appel de la fonction %Attribution d'un nom et de dimensions à l'image enregistrée IrrotSavePlot(fig_planck,'Planck_5000K_121x84',[12.1 8.4]); %Enregistrement d'une image en ajustant nom, taille, format, résolution. IrrotSavePlot(fig_planck,'Planck_5000K_121x84_1200dpi',[12.1 8.4],'Format','png','BitMapRes',1200);