如何用matlab画这种真实值与预测值概率密度估计图呀~

如何用matlab画这种真实值与预测值概率密度估计图呀~求帮助啊!这种图在matlab中怎么得到

img

你好,可以定义一个函数:

function h = scatter_kde(x, y, varargin)
c = ksdensity([x,y], [x,y]);
if nargin > 2
    % Set Marker Size
    i = find(strcmp(varargin, 'MarkerSize'),1);
    if ~isempty(i); MarkerSize = varargin{i+1}; varargin(i:i+1) = [];
    else
        MarkerSize = [];
    end
    % Plot scatter plot
    h = scatter(x, y, MarkerSize, c, varargin{:});
else
    h = scatter(x, y, [], c);
end
colorbar
end

然后设置两列x、y,调用画图即可

x = linspace(0,10,1000)';
y = randn(1000,1)*0.5+x;
scatter_kde(x, y, 'filled', 'MarkerSize', 5);
hold on
p = polyfit(x,y,1);
fplot(@(x)polyval(p,x),[0, max(x)],'k')
R = corrcoef(x,y);

xlabel('x');ylabel('y')
legend (['y=',poly2str(p,'x')],['R^2 = ',num2str(R(1,2)^2)])

效果:

img