MatLabでチャートを準備する

科学論文を書く際、時間のかなりの部分がイラスト、グラフ、図の作成に費やされます。 このプロセスを加速する方法についての考えと例をいくつか共有したいと思います。 MatLabシステムを使用する人に役立つ資料。



MatLabは、グラフ、チャートなどの形式でグラフィック情報を表示するための十分な機会を提供します。 ただし、デフォルトのイラストで常に取得されると、記事のデザインの要件を満たすとは限りません。 MatLabシステムにはこれに関する多くの設定があります。 また、イラストの準備を高速化するために、グラフの表示をカスタマイズするのに役立つ数行のコードを使用することをお勧めします。



まず、チャート上の軸と銘刻文字の値を表示するために使用されるフォントを設定する必要があります。これは、ロシア語で銘刻文字が正しく表示されない場合にも役立ちます。



set(0,'DefaultAxesFontSize',14,'DefaultAxesFontName','Times New Roman'); set(0,'DefaultTextFontSize',14,'DefaultTextFontName','Times New Roman');
      
      





次に、グラフのサイズと画面上の位置を調整する必要があります。たとえば、フルスクリーンで表示します。



 figure('Units', 'normalized', 'OuterPosition', [0 0 1 1]);
      
      





必要に応じて、チャートの名前を挿入します。



 title('');
      
      





次に、同じ軸とグラフプロパティを使用して、1つのウィンドウで複数のグラフの構築を有効にできます。



 hold on;% hold all;
      
      





特定の色、スタイル、線の太さでグラフを作成します。



 plot(X2,Y2,':k','LineWidth',3); plot(X2,Y3,':b','LineWidth',3); plot(X2,Y4,'-.','Color',[.1 .7 .7],'LineWidth',3); plot(X2,Y5,'--','Color',[.1 .4 .1],'LineWidth',3); plot(X2,Y6,'r','LineWidth',3);
      
      





図の特定の位置(右下など)に凡例をグラフに挿入します。



 legend(' ',' 3- ',' 4- ',' 5- ',' 7- ',' 9- ', 4);
      
      





そしてここから楽しみが始まります...






MatLabでプロットする場合、座標軸のラベルの小数値はドットの形式の区切り記号で表示されますが、小数部分と整数部分の区切り記号は通常コンマとして表示されます。



グラフメニューからこれらの軸のラベルのすべての値を手動で変更しないようにするため
次の小さなコードを使用します。
 BX=get(gca,'XTick'); BY=get(gca,'YTick'); xlabel(XL,'Position',[BX(size(BX,2)) BY(1)]) ylabel(YL,'Rotation',0,'Position',[BX(1) BY(size(BY,2))]) XA=get(gca,'XTickLabel');% for i=1:size(XA,1) z=rem(i,2); if z==0; if XA(i,1)~='0' && XA(i,2)~=0 XA(i,:)=char(0); end end end XA(size(XA,1),:)=char(0); set(gca,'XTickLabel',XA); YA=get(gca,'YTickLabel');% for i=1:size(YA,1) z=strfind(YA(i,:),'.'); YA(i,z)=','; clear z; z=rem(i,2); if z~=0; YA(i,:)=char(0); end end YA(size(YA,1),:)=char(0); set(gca,'YTickLabel',YA);
      
      







このコードは、 x軸とy軸のシグネチャを「間引き」し、 y軸のラベルのセミコロンも修正します。 他の軸についても、同様の手順を繰り返す必要があります。



結論として、グリッド線を表示します。



 grid on;
      
      





使いやすくするために、これらのアクションを毎回繰り返さないようにするために、グラフ表示設定とそのデータが示されるパラメーターで記述されたコードを関数で囲みます。



サブグラフィック関数
 function result=subgraphic(X1,X2,Y1,Y2,Y3,Y4,Y5,Y6,Tit,TL,XL,YL,PL) figure('Units', 'normalized', 'OuterPosition', [0 0 1 1]); plot(X1,Y1,'o','LineWidth',2,'MarkerEdgeColor','k','MarkerFaceColor',[.49 1 .63],'MarkerSize',5); if Tit title(TL); end hold on; plot(X2,Y2,':k','LineWidth',3); plot(X2,Y3,':b','LineWidth',3); plot(X2,Y4,'-.','Color',[.1 .7 .7],'LineWidth',3); plot(X2,Y5,'--','Color',[.1 .4 .1],'LineWidth',3); plot(X2,Y6,'r','LineWidth',3); legend(' ',' 3- ',' 4- ',' 5- ',' 7- ',' 9- ', PL); BX=get(gca,'XTick'); BY=get(gca,'YTick'); xlabel(XL,'Position',[BX(size(BX,2)) BY(1)]) ylabel(YL,'Rotation',0,'Position',[BX(1) BY(size(BY,2))]) XA=get(gca,'XTickLabel');% for i=1:size(XA,1) z=rem(i,2); if z==0; if XA(i,1)~='0' && XA(i,2)~=0 XA(i,:)=char(0); end end end XA(size(XA,1),:)=char(0); set(gca,'XTickLabel',XA); YA=get(gca,'YTickLabel');% for i=1:size(YA,1) z=strfind(YA(i,:),'.'); YA(i,z)=','; clear z; z=rem(i,2); if z~=0; YA(i,:)=char(0); end end YA(size(YA,1),:)=char(0); set(gca,'YTickLabel',YA); grid on; result=1;
      
      





実行する
 subgraphic(B,T,A,Y3,Y4,Y5,Y7,Dva_theta_0_5,Tit,'','{\itT}, \circC','{2{\phi}_{0,5}, .',3);
      
      



事前に準備されたデータを使用します。



そして、ここで小さな待ち伏せが私たちを待っています...
その結果、次のようなグラフが得られます。











デフォルトでは、MatLabはキリル文字「f」のようにギリシャ文字「fi」を表示します。 おなじみのギリシャ文字「phi」をループのようなスタイルで表示する1つの方法は、ギリシャ文字の特別なフォントを選択することです。 たとえば、 こちらからギリシャ語の標準フォントダウンロードしてインストールします。 シンボルテーブルでギリシャ語のフォントを見ると、このフォントでは文字「phi」が2つのバージョンに存在し、ラテンコード「f」ではMatLabと同じ結果が「f」の形式で、ラテンコード「j」であることがわかります望ましい結果が得られるはずです。



実行する
 subgraphic(B,T,A,Y3,Y4,Y5,Y7,Dva_theta_0_5,Tit,'','{\itT}, \circC','{2\fontname{Greek}j}_{0,5}, .',3);
      
      





そして、次のチャートを取得します。






MatLabシステムを使用したグラフ作成に上記のコードを使用した結果、








PS MatLabプロットでコードunicode-03C6を使用してギリシャ文字記号「fi」を表示する簡単な方法を誰かが知っている場合は、コメントを記入してください。



UPDコメントで提案されているもう1つの方法は、phiをループのようなスタイルで表示することです。

 text(x, y, '$\varphi$', 'FontSize', 14, 'Interpreter', 'latex');
      
      







そしていくつかの便利なリンク:

Github.comのコード

MATLABの便利なプロット調整ツール

Matlabに関する注意。 グラフをエクスポートします。

MatLab 6.5で最もシンプルなGUIアプリケーション



All Articles