当我这样做时: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;[~, 边缘] = hist(C,cdivs-1);边缘 = [-Inf 边缘 Inf];% 包括所有点[Nk, bink] = histc(C,edges);数字;坚持,稍等;cmap = jet(cdivs);对于 ii=1:cdivsidx = bink==ii;plot(x(idx),y(idx),'.','MarkerSize',4,'Color',cmap(ii,:));结尾颜色图(cmap)caxis([min(C) max(C)])颜色条它的响应已经比 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:具有大量数据点的散点图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!
05-18 02:58