Use*_*419 6 matlab plot label scale heatmap
我正在尝试使用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]);
Run Code Online (Sandbox Code Playgroud)
编辑:我附上解决所提出的问题,以达到多亏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]);
Run Code Online (Sandbox Code Playgroud)
有一些可能的解决方案:
如果图形尚未最大化,您可以使用以下方法:
set(gcf, 'Position', get(0, 'ScreenSize'))
Run Code Online (Sandbox Code Playgroud)
相反的get(0, 'ScreenSize'),你当然可以,请用自定义矢量任何所需尺寸(如描述在这里).
您还可以通过减小字体大小使标签文本更小:
set(gca, 'FontSize', 5)
Run Code Online (Sandbox Code Playgroud)
但请注意,这会影响当前轴中的所有文本.
作为最后的手段,您可以减少y轴中显示的刻度数,即增加刻度间隔.而不是1:200尝试使用其他间隔,例如:
set(gca, 'YTick', [1:20:200])
Run Code Online (Sandbox Code Playgroud)
尝试结合上述解决方案,以获得更好的可视化效果.
您可以在官方文档中阅读有关轴控制的更多信息.此外,正如您在其中一条评论中所建议的那样,此页面包含许多用于在MATLAB中显示图表的其他有用技巧.
| 归档时间: |
|
| 查看次数: |
5043 次 |
| 最近记录: |