我试着画分散图,比如:
scatter(coor(:, 2), coor(:, 3), 1, coor(:, 4));
问题是,我有很多坐标要绘制(~100000)绘制它需要很长的时间,当我试图将图形导出到tiff时,matlab已经死了好几分钟了有什么解决方案可以改进绘图,或者至少是tiff导出?
编辑:
忘了提,第三坐标(coor(:,4))是一个颜色代码。
所以,当我使用散射(如上所述)时,我在下面的图片上看到了类似的东西,这正是我想要看到的(只是它的速度太慢,我无法导出):
当我这样做时:
绘图3(坐标(:,2),坐标(:,3),坐标(:,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,:));
end
colormap(cmap)
caxis([min(C) max(C)])
colorbar
它的响应已经比
scatter(x,y,1,C)
好得多,后者给出的是相同的图,但具有更高的颜色分辨率(在上面的代码中可以调整)。