6

MATLAB / Octaveを使用して単純なヒートマップを作成しようとしています。 ヒートマッププロット
ご覧のとおり、多くの行があり、それぞれが個別のカテゴリを表しています。

この関数を使用していimagescますが、画像/プロットを拡大縮小して、各y軸ラベルを適切に印刷できるようにしたいと考えています(下の画像に見られるような混乱はありません)。

これが私が修正したいサンプルコードです:

A = randi(100, 200, 3);
imagesc(A, limit = [0, 100]);
set(gca, 'xtick', [1:3]);
set(gca, 'xticklabel', { "1,000", "2,000", "3,000" });
set(gca, 'ytick', [1:200]);

編集:私は提案された問題の解決策を添付しています。EitanTのアドバイスとhttp://nibot-lab.livejournal.com/73290.html?nojs=1の有用な情報のおかげで到達しました:

paperWidth = 16.5;
paperHeight = 11.7;

set(gcf, 'Position', get(0,'Screensize'));
set(gcf, 'PaperUnits', 'inches');
set(gcf, 'PaperSize', [paperHeight paperWidth]);
set(gcf, 'PaperPositionMode', 'manual');
set(gcf, 'PaperPosition', [0 0 paperWidth paperHeight]);
set(gcf, 'renderer', 'painters'); figure(gcf);

A = randi(100, 200, 3);
imagesc(A, limit = [0, 100]);
set(gca, 'FontSize', 5);
set(gca, 'FontWeight', 'light');
set(gca, 'xtick', [1:3]);
set(gca, 'xticklabel', { "1,000", "2,000", "3,000" });
set(gca, 'ytick', [1:200]);
4

1 に答える 1

6

これにはいくつかの可能な解決策があります:

フィギュアウィンドウのサイズ変更

数値がまだ最大化されていない場合は、次を使用して実行できます。

set(gcf, 'Position', get(0, 'ScreenSize'))

もちろん、代わりにget(0, 'ScreenSize')、カスタムベクトルを使用して任意のディメンションを指定することもできます(ここで説明します)。

フォントサイズを小さくする

フォントサイズを小さくするだけで、ラベルテキストを小さくすることもできます。

set(gca, 'FontSize', 5)

ただし、これは現在の軸のすべてのテキストに影響することに注意してください。

表示されるティックの数を減らす

最後の手段として、y軸に表示される目盛りの数を減らすことができます。つまり、目盛りの間隔を長くすることができます。の代わりに1:200、他の間隔で遊んでみてください。たとえば、次のようになります。

set(gca, 'YTick', [1:20:200])

視覚化を向上させるために、上記のソリューションの組み合わせを試してください。

軸制御の詳細については、公式ドキュメントを参照してください。また、コメントの1つで提案されているように、このページには、MATLABでプロットを表示するための追加の便利なトリックがたくさん含まれています。

于 2012-11-09T19:11:37.557 に答える