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