具有相应颜色阵列的点的Matlab快速绘图
Matlab fast plotting of points with corresponding color array
我有一个长度为 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
这在技术上可行,但速度可能会很慢,尤其是当有大量数据点和大量 xy 数组要绘制时。
我想知道是否
- 有没有更快的方法?
- 有没有办法将其绘制为多色线,而不是标记 ('.')
您可以使用 scatter
一次性绘制所有点,每个点使用不同的颜色。颜色值作为第四个参数传递。第三个参数是标记大小(可以是固定的,也可以每个点有不同的值):
xy_data = rand(1000, 2);
colors = rand(1000, 3);
scatter(xy_data(:, 1), xy_data(:, 2), 30, colors, '.')
我有一个长度为 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
这在技术上可行,但速度可能会很慢,尤其是当有大量数据点和大量 xy 数组要绘制时。 我想知道是否
- 有没有更快的方法?
- 有没有办法将其绘制为多色线,而不是标记 ('.')
您可以使用 scatter
一次性绘制所有点,每个点使用不同的颜色。颜色值作为第四个参数传递。第三个参数是标记大小(可以是固定的,也可以每个点有不同的值):
xy_data = rand(1000, 2);
colors = rand(1000, 3);
scatter(xy_data(:, 1), xy_data(:, 2), 30, colors, '.')