Scatter plot with density in Matlab

亡梦爱人 提交于 2019-11-27 03:23:00

问题


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 hist3 and other suggestions but it overwrites my data sets and the binning looks awful.

Is there another way to plot scatter density plots? Is there really no Matlab function for it? If not, which program could I use to easy generate such a plot?

A mix between this two examples:


(source: bcgsc.ca)


回答1:


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 




回答2:


Try Violin Plot submission on File Exchange. It's very customizable. I use it all the time. Thanks to @Jonas.



来源:https://stackoverflow.com/questions/21006490/scatter-plot-with-density-in-matlab

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!