use*_*470 2 matlab matlab-figure
我有一个长度为 N 的 X/Y 数据数组,以及一个对应的颜色数组,即 Nx3。我希望根据颜色数组中的相应颜色为 X/Y 数据的绘图着色。
单个 XY 数组的大小大于 100000,我有很多数组要绘制,因此希望为此找到一个快速解决方案。
我目前如何在循环中执行此操作的示例
xy_data = zeros(100000, 2);
colors = zeros(100000, 3);
figure;
hold on
for i = 1:length(xy_data)
plot(xy_data(i, 1), xy_data(i, 2), '.', 'color', colors(i, :));
end
Run Code Online (Sandbox Code Playgroud)
这在技术上是有效的,但它可能会很慢,特别是当有大量数据点和大量 xy 数组要绘制时。我想知道是否
您可以一次scatter绘制所有点,每个点使用不同的颜色。颜色值作为第四个参数传递。第三个参数是标记大小(可以是固定的,也可以为每个点设置不同的值):
xy_data = rand(1000, 2);
colors = rand(1000, 3);
scatter(xy_data(:, 1), xy_data(:, 2), 30, colors, '.')
Run Code Online (Sandbox Code Playgroud)