You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

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

火山引擎 最新活动