Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 其它 > 资料存档
资料存档 资料存档
 
 
主题工具 显示模式
旧 2019-12-10, 20:48   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
帖子 如何使图像足够大以避免刻度标签重叠?

假设数据X的大小为1000 * 1000。使用以下命令显示X:

imagesc(X); 并使用以下标签标记所有行:

set(gca, 'YTickLabel', somelabels); 尽管已正确绘制了数据X并显示了Ytick标签,但由于行数很多,因此标签高度重叠。有什么办法解决这个问题?任何帮助将不胜感激。

编辑1

我意识到我的问题并不能很好地代表我的问题。我将根据答案总结我的理解并重新提出一个问题:
  1. 要在“ 图形窗口”中显示尽可能多的行/标签,以下帮助:

    set(gca,'FontSize',6), or, alternate the distance (suggested by yuk), or, set(gca,'YTick',1:10:1000,'YTickLabel',somelabels(1:10:1000));
  2. 代码

    set(gca,'Units','pixels','Position',[20 20 10000 10000]); 默认情况下将显示放大的图像。但是,如果放大的图像太大而无法容纳在“ 图形窗口”中 ,则将仅显示图像的一部分。但是, 缩小平移工具都无法到达该图像的其余部分。
  3. 代码的默认行为

    imagesc(X); set(gca, 'ytick', 1:1000, 'yticklabe', ylabel); 用重叠的标签将整个图像拟合显示在“ 图形窗口”中 。不过,它确实允许人们放大图像的一部分并查看未重叠的标签。
  4. 如果我将图像保存到pdf文件中:

    imagesc(X); set(gca, 'ytick', 1:1000, 'yticklabe', ylabel); saveas(gcf, 'fig.pdf'); 然后,保存的pdf仅是带有重叠标签的适合“ 图形窗口”的图像。然而, Matlab图窗口中不同变焦 pdf阅读器内不会改变标签的相对位置/距离。结果,以pdf格式放大的图像仍会与标签重叠。
所以我的问题是:
如何将图像保存到pdf文件或png中,以使其在Adobe Reader中打开时具有与上述第3点类似的行为,而不是与第4 类似的行为?



回答:

您也可以使用轴标签字体来使其变小。

set(gca,'FontSize',6) 另请参见其他轴属性以更改字体-FontName,FontWidth,FontUnits等。

另一个解决方案 :如果标签较短,则可以在距离轴的地方进行替换,因此标签不会重叠。检查以下示例:

lbl = cellstr(reshape(sprintf('%3d',1:100),3,100)'); lbl(1:2:100) = strcat(lbl(1:2:100),{' '}); imagesc(rand(100)) set(gca,'ytick',1:100) set(gca,'yticklabel',lbl) 结果图像的一部分:



更新

回答您的更新问题。
  1. PDF文档只能包含静态图像。将图形保存为PDF(或任何其他图形文件)后,就无法像使用MATLAB图形工具一样进行放大/缩小。
  2. 您可以先放大MATLAB图形,然后再保存PDF文件。在这种情况下,图形将按原样保存。但是这种方式假定用户与图形具有交互性。
  3. 如果您事先知道您感兴趣的区域,则可以使用XLim / YLim属性设置轴限制,然后保存该图。
例:

imagesc(X); set(gca, 'ytick', 1:1000, 'yticklabe', ylabel); set(gca, 'XLim',[1 20], 'YLim', [20 40]) saveas(gcf, 'fig.pdf'); 顺便说一句,您还可以使用PRINT功能将图形保存到文件中。更灵活。 SAVEAS只是包装。

print('-dpdf','fig.pdf')

更多&回答...
poster 当前离线   回复时引用此帖
 

主题工具
显示模式

发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛禁用 表情符号
论坛启用 [IMG] 代码
论坛启用 HTML 代码



所有时间均为北京时间。现在的时间是 00:03


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.