Matlab には、ラテックス ドキュメントに含めたい 2 つのプロットがあります。このコードを使用して、個々のプロットごとにサイズとその他すべてを変更できます。
set(1, 'units', 'centimeters', 'position', [0 0 10 8]);
set(get(gca,'xlabel'),'string','cutoff','fontsize',14,'fontname','Bitstream Vera Serif');
set(get(gca,'ylabel'),'string','F-score','fontsize',14,'fontname','Bitstream Vera Serif');
set(gca,'fontsize',14,'fontname','Bitstream Vera Serif');
print(1,'-depsc','-r300',[dir_name filenames{f} method{m} '_comb']);
これにより、プロットが正しいサイズなどで .eps ファイルに保存され、ラテックスの正しいサイズで完全にロードされます。ただし、軸のサイズを維持しながら、両方のプロットをサブプロットに入れたいと考えています。印刷されるサブプロットは軸のサイズを無視しているように見え、ラテックスでは常に同じサイズで表示されるため、上記のコードは機能しません (軸の数値を大きくしても問題ありません)。
Matlab が正しいサイズでサブプロットを印刷するようにするにはどうすればよいですか? 注目に値するかもしれません:サブプロットのサイズは、プロットを生成するときに画面上で実際に変化しますが、サブプロットを使用しない場合は正常に機能しますが、これはラテックスによって無視されます。
- 編集 -
いくつかいじった後、私が持っているコードの最小限の動作例を提供することができました。
X1 = sort(rand(30,1));
Y1 = sort(rand(30,1));
X2 = sort(rand(30,1));
Y2 = sort(rand(30,1));
subplot(2,1,1)
plot(X1,Y1,'gs','LineWidth',0.5,'MarkerEdgeColor','k','MarkerFaceColor','g','MarkerSize',2)
axis([0 1 0 1]);
highX = X1(:,1)>=0.8;
for K = 1 : size(X1,1)
if highX(K) == 1
line(X1(K,1),Y1(K,1),'color',[.5 .5 .5],'marker','o','linestyle','none','markersize',9,'MarkerEdgeColor','k');
end
end
set(1, 'units', 'centimeters', 'position', [2 2 15 15]);
subplot(2,1,2)
plot(X2,Y2,'gs','LineWidth',0.5,'MarkerEdgeColor','k','MarkerFaceColor','g','MarkerSize',2)
axis([0 1 0 1]);
highX = X2(:,1)>=0.8;
for K = 1 : size(X2,1)
if highX(K) == 1
line(X2(K,1),Y2(K,1),'color',[.3 .5 .7],'marker','o','linestyle','none','markersize',9,'MarkerEdgeColor','k');
end
end
set(1, 'units', 'centimeters', 'position', [2 2 15 15]);
print(1,'-depsc','-r300','test');
これにより、いくつかの座標がマークされた 2 つのプロットが生成されます。ラテックスでは、次のようにファイルをロードします。
\documentclass{article}
\usepackage{graphicx,epstopdf}
\begin{document}
\begin{figure}[H]
\centering
\includegraphics[width=1\linewidth]{test.eps}
\caption{Caption}
\label{fig:label}
\end{figure}
\end{document}