Matlab图形保存异常及坐标轴字体与显示设置咨询
解决Matlab图形保存与坐标轴设置的两个问题
问题1:saveas保存的PNG图片损坏
我之前也碰到过saveas保存PNG偶尔出问题的情况,大概率是渲染或者路径相关的小问题,给你几个靠谱的解决方案:
先确保目标目录存在:如果
Figures文件夹还没创建,saveas可能会因为路径无效导致保存失败或文件损坏。先加一段目录检查的代码:DirectoryPath = 'C:\Users\Behzad\Desktop\Figures'; % 检查目录是否存在,不存在就创建 if ~exist(DirectoryPath, 'dir') mkdir(DirectoryPath); end whereToStore = fullfile(DirectoryPath, 'filename.png');替换成
print函数保存:print函数对PNG格式的渲染稳定性比saveas更好,还能自定义分辨率,推荐试试:% 用print保存,-dpng指定格式,-r300是300dpi分辨率(可按需调整) print(gcf, whereToStore, '-dpng', '-r300');确认图形句柄正确:如果同时打开了多个图形窗口,
gcf可能指向不是你要保存的那个图,建议显式获取图形句柄:% 绘图前先获取或创建图形句柄 fig = figure; % 你的绘图代码... % 用句柄指定保存的图形 print(fig, whereToStore, '-dpng');
问题2:调整坐标轴数字字号与x轴数字垂直显示
这两个需求都可以通过设置坐标轴的属性轻松实现:
减小坐标轴数字字号
获取当前坐标轴的句柄,直接修改FontSize属性即可:
ax = gca; % 获取当前坐标轴句柄 ax.FontSize = 10; % 把字号改成你需要的数值,比如10、8等
x轴数字垂直显示
同样用坐标轴句柄,设置XTickLabelRotation属性为90度:
ax.XTickLabelRotation = 90;
如果你的Matlab版本比较旧(R2014b之前),需要用set函数来设置属性:
set(gca, 'FontSize', 10, 'XTickLabelRotation', 90);
这样就能同时实现字号缩小和x轴标签垂直显示的效果了。
内容的提问来源于stack exchange,提问作者Bozmaje




