在MATLAB loglog图中绘制斜率三角形

时间:2014-10-26 03:30:56

标签: matlab

我在MATLAB中有一个log-log图,想要添加像this这样的“斜率三角形”。有关如何做到这一点的任何想法?这是一个MWE:

x = [1000; 2000; 3000; 4000; 5000; 6000; 7000; 8000; 9000; 10000];
y = [0.01; 0.03; 0.05; 0.09; 0.14; 0.2; 0.28; 0.38; 0.48; 0.56];
loglog(x,y);

1 个答案:

答案 0 :(得分:1)

您可以手动绘制三角形,如下所示:

triang_x = [4000, 5000];  % chose location
triang_y = interp1(x, y, triang_x);
loglog(x, y)
hold on
loglog(triang_x([1,2,2]), triang_y([1,1,2]), 'k')

结果:

enter image description here

准确地说,当网格非常粗糙时,这可能会给对数日志图带来小错误,例如:对于triang_x = [2500, 3500],您会看到三角形没有完全接触曲线,因为线性插值不是对数 - 对数图中的直线。要解决此问题,您需要使用triang_y = exp(interp1(log(x), log(y), log(triang_x)));进行插值。