%Présentation 1 - Matlab: Ce gros script sert à présenter comment il est %utile de faire un script matlab pour tracer un graphe de manière propre et %constructive/efficace. Beaucoup de commentaires mais rien de compliqué, il %est inutile comparé à la fonction IRROTSAVEPLOT qui fait la même chose %mieux, plus proprement et avec plus de flexibilité. %0 - TOUJOURS des scripts pour grapher, JAMAIS des fonctions %Ici il y a normalement une petite description du script, qui explique ce %qu'il fait, à quel projet il se rapporte, quelles données il contient etc. %1 - Commencer par les constantes %1.1 - Il est mieux séparer: constantes physiques, géométriques... %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] %2 - On ne charge les données qu'à la première exécution du script (okay, % c'est pas critique mais l'avantage sera évident quand vous aurez des % Go de mesures à charger ;] %lam = load('lambda.txt'); %P_S = load('Bbla.txt'); lam = [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]; %Données en mode vecteurs pour que le script tourne sans avoir besoin des %fichiers de données. Mais ceci est très déconseillé. %3 - Effectuer les opérations mathématiques sur les données lam = lam*1e6; %Longueur d'onde en [um] %4 - Créer l'espace figure adapté à nos besoins figsize = [12.9 5.4]; %Taille de la figure en cm. %4.1 - Toujours donner des noms fig_planck = figure('Visible','on'); %Pour (ne pas) afficher le graphe. %4.2 - On change les paramètres comme ça (CF Matlab help) fig_planck.PaperPositionMode = 'manual'; fig_planck.Units = 'centimeters'; %Unité de la structure figure fig_planck.PaperUnits = 'centimeters'; %Unité de la feuille d'impression fig_planck.Position = [15 15 figsize]; %Position et taille à l'écran fig_planck.PaperSize = figsize; %Dimensions feuille d'impression fig_planck.PaperPosition = [0 0 figsize];%Position de l'image sur le papier %4.3 - On trace notre courbe sur le graphe line = plot(lam,P_S,'b.'); grid on; %4.4 - Légendes et tout le tralala xlbl = '$\lambda$\,[${\rm \mu}$m]'; %Titres d'axes - toujours courts xlabel(xlbl,'Interpreter','Latex'); %afficher le titre en latex ylbl = 'P$_S$\,[W\,Ster$^{-1}$]'; ylabel(ylbl,'Interpreter','Latex'); leg = legend('T = 5000\,[K]'); %Légende (à éviter si possible) set(leg,'Interpreter','latex'); %bim, latex... %4.5 - Redimensionner intelligemment la figure set(gca,'ActivePositionProperty','OuterPosition'); axout = get(gca,'Outer'); %dimension des axes (normalisée) axnst = get(gca,'TightInset'); %Etape clef, ajuste la dimension interne des axes+marges à la dimension ex- %terne de la figure (CF documentation pour schéma des variables) resizeaxes = axout - [-axnst(1)... -axnst(2)... axnst(1)+axnst(3)... axnst(2)+axnst(4)]; set(gca,'Position',resizeaxes); %5 Baptiser et enregistrer name = 'planck_resized'; print('-painters','-depsc',name); %fonction pour enregistrer l'image.