在对数 - 对数比例散点图中创建趋势线

时间:2016-11-05 06:00:39

标签: matlab trendline

我正在编码以在散点图上制作趋势线。

data=[];
for k=1:100
    int=0;
    for t=1:100
        if k_star_90(k,t)~=0
            int=int+k_star_90(k,t);
        end
        if k_star_90(k,t)==0 && int~=0
            data=[data int];
            int=0;
        end
    end
end

intervals = linspace(0, 1, 100); 
h1 = histc(data, intervals); 
scatter(intervals, h1, 'r');
set(gca,'xscale','log')
set(gca,'yscale','log')

picture of plot result

这是对数对数比例。在这个图上,我想绘制y = ax + b(第一阶)趋势线。我不知道该怎么做。

我将非常感谢您的帮助

1 个答案:

答案 0 :(得分:0)

我不确定我是否理解你的意图,但是如果你需要一个趋势线,你可能会做这样的事情

intervals = [0.01  0.02 0.2 0.1 0.3 0.5 0.03 0.4 0.15 0.2 0.2 0.25 1 0.9 0.8 0.8 0.7];
h1 =        [70    40   4   20  2   3   60   10  50   40  10  20   1 2   3   1   2] ;

coeffs = polyfit(intervals, h1, 1);
xFitting = 0:0.01:1;
yFitted = polyval(coeffs, xFitting);

scatter(intervals, h1, 'r');
set(gca,'xscale','log');
set(gca,'yscale','log');
grid on;
hold on;
plot(xFitting, yFitted, 'b', 'LineWidth', 2);
hold off;
ylim([1 80]);

xlabel('intervals');
ylabel('h1');

以下是Log scale的趋势: enter image description here

Og当然它看起来不像是一阶趋势。要将其描绘为一条线,您需要回到正常的情节:

enter image description here