matlab:具有大量数据点的散点图

Art*_*Art 17 matlab plot scatter figure

我正在尝试绘制散点图,例如:

scatter(coor(:, 2), coor(:, 3), 1, coor(:, 4));
Run Code Online (Sandbox Code Playgroud)

问题是,我有很多坐标要绘制(~100 000).它花了很长时间来绘制它,当我尝试将图形输出到tiff时 - 然后matlab已经死了好几分钟...任何改善绘图的解决方案,或者至少是tiff export?

编辑:忘了提,第三坐标(coor(:,4))是一个颜色代码.

所以,当我使用分散(如上所述)时,我在下面的图像上有类似的东西,这就是我想要看到的东西(只是它超级慢,我无法导出):

分散

当我做:

plot3(coor(:,2),coor(:,3),coor(:,4),'.')

效果不再那么酷(注意:图像不是来自相同的坐标......):

在此输入图像描述

Gun*_*uyf 23

您可以使用绘图,但所有点都具有相同的颜色.但是,您可以在不同的子集中划分集合,并使用自己的颜色绘制每个集合:

N = 100000;
x = rand(N,1);
y = rand(N,1);
C = sin(2*x)+y;

cdivs = 10;
[~, edges] = hist(C,cdivs-1);
edges = [-Inf edges Inf]; % to include all points
[Nk, bink] = histc(C,edges);

figure;
hold on;
cmap = jet(cdivs);
for ii=1:cdivs
    idx = bink==ii;
    plot(x(idx),y(idx),'.','MarkerSize',4,'Color',cmap(ii,:));
end

colormap(cmap)
caxis([min(C) max(C)])
colorbar
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

它的响应已经比scatter(x,y,1,C)给出相同的绘图要好很多,但颜色分辨率更高(在我上面的代码中可以调整).