Scatter plot with density in Matlab

后端 未结 2 1240
孤城傲影
孤城傲影 2020-12-10 06:11

I would like to plot data set 1 and data set 2 in one plot vertical. Unfortunately the data is huge, so it is just a smear of points and can\'t see the density. I tried hist

2条回答
  •  無奈伤痛
    2020-12-10 06:17

    Thanks to @Emil Albert for a correction (a transpose was missing)


    What's wrong with computing hist3 and displaying the result with imagesc?

    data1 = randn(1,1e5); %// example data
    data2 = randn(1,1e5) + .5*data1 ; %// example data correlated to above
    values = hist3([data1(:) data2(:)],[51 51]);
    imagesc(values.')
    colorbar
    axis equal
    axis xy
    


    If you want to have the axes in accordance with the true data values: use the second output of hist3 to obtain the positions of the bin centers, and pass them to imagesc:

    data1 = randn(1,1e5); %// example data
    data2 = 2*randn(1,1e5) + 1.2*data1 + 4; %// example data correlated to above
    [values, centers] = hist3([data1(:) data2(:)],[51 51]);
    imagesc(centers{:}, values.')
    colorbar
    axis xy
    

提交回复
热议问题