当我这样做时: plot3(coor(:, 2),coor(:, 3),coor(:, 4),'.')效果不再那么酷(注意:图像不是来自相同的坐标...): 解决方案您可以使用 plot ,但是所有点都具有相同的颜色.但是,您可以将集合划分为不同的子集,并以各自的颜色对其进行绘制: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,:));endcolormap(cmap)caxis([min(C) max(C)])colorbar响应速度已经比scatter(x,y,1,C)好,后者给出相同的绘图,但是具有更高的色彩分辨率(可以在我上面的代码中进行调整).I'm trying to plot scatter, something like:scatter(coor(:, 2), coor(:, 3), 1, coor(:, 4));The problem is, that I have quite big number of coordinates to plot (~100 000). Its taking long time to plot it, and when I try to export figure to tiff - then matlab is dead for goooood few minutes... Any solution to improve plotting, or at least tiff export?EDIT:Forgot to mention, 3rd coordinate (coor(:, 4)) is a color code.So, when I'm using scatter (as above), I have something like on the image below, and thats exactly how I want to see it (just its super slow and I can't export that):When I do: plot3(coor(:, 2), coor(:, 3), coor(:, 4), '.')effect is not as cool any more (note: images are not from the same coordinates...) : 解决方案 You can use plot, but then all points have the same color. However, you can divide the set in different subsets and plot them each with their own color: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,:));endcolormap(cmap)caxis([min(C) max(C)])colorbarwhich responds already a lot better than scatter(x,y,1,C) which gives about the same plot, but with higher color resolution (which is adjustable in my code above). 这篇关于matlab:散点图具有大量数据点的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持! 上岸,阿里云!
07-08 14:56