You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Matlab Semilogx绘图问题:调整X轴刻度与网格匹配目标图

解决Matlab semilogx图轴刻度与网格样式问题

以下是修改后的代码,可实现目标图的刻度样式、网格效果,同时可视化X截距:

Exposure = [53.19, 79.79, 132.98, 212.77, 455.93];
Cure_depth = [10.88, 14.56, 19.19, 23.45, 30.36];

% 绘制原始数据点与连线
semilogx(Exposure,Cure_depth, '-*', 'LineWidth',1.5, 'MarkerSize',8)
hold on

% 拟合直线并计算X截距(y=0时的x值)
p = polyfit(log10(Exposure), Cure_depth, 1); % 半对数图需对x取log10后做线性拟合
x_intercept_log = -p(2)/p(1); % 求解y=0时的log10(x)值
x_intercept = 10^x_intercept_log; % 转换回原始x轴数值

% 绘制延长至y=0的拟合线,方便查看截距
x_fit = logspace(x_intercept_log, 3, 100); % 生成从截距到10^3的连续x点
y_fit = polyval(p, log10(x_fit));
semilogx(x_fit, y_fit, '--r', 'LineWidth',1)

% 设置X轴刻度为10^0、10^1等格式
xticks([10^0, 10^1, 10^2, 10^3])
xticklabels({'$10^0$', '$10^1$', '$10^2$', '$10^3$'})
set(gca, 'TickLabelInterpreter', 'latex') % 启用LaTeX渲染上标

% 调整网格样式:主网格对齐大刻度,次网格对齐小刻度
grid on
grid minor
set(gca, 'GridLineStyle', '-', 'MinorGridLineStyle', ':')

% 标注X截距
text(x_intercept, 0, sprintf('X截距: %.2f', x_intercept), ...
    'HorizontalAlignment', 'right', 'VerticalAlignment', 'top')

% 可选:添加坐标轴标签与标题
xlabel('Exposure')
ylabel('Cure Depth')
title('Cure Depth vs Exposure')

hold off

关键修改说明

  • X轴刻度:通过xticks指定刻度位置,配合xticklabels与LaTeX解释器生成上标格式的刻度文字,完全匹配目标图样式。
  • 网格优化:开启grid minor显示次网格,同时设置主/次网格的不同线型,让网格对齐对数刻度的层级。
  • X截距可视化:利用线性拟合计算y=0对应的x值,绘制延长的拟合线并标注数值,直观展示截距位置。

内容的提问来源于stack exchange,提问作者Magic Dave

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 15:40:22