【发布时间】:2020-05-04 19:20:25
【问题描述】:
我真的很喜欢scatter() 能够根据一些值向量自动为点着色,我只想在点之间添加彩色线条。
有问题的图在 x 轴上有时间,在 y 轴上有蒙特卡罗数,然后是一些测量值作为颜色向量(例如,在视频帧中看到的汽车数量)。
基本上,每个点都是系统中的一个更新。因此,调用scatter(time,monte_carlo_number,[],color_vec) 会绘制系统中存在更新的点,颜色代表某个值。这很好,但我想添加连接这些点的线段,每个线段都匹配 color_vec 指定的颜色。
基本工作示例
% Create example data
data = table();
data.time = randsample(1:100, 1000, true)';
data.mc = randsample(1:50, 1000, true)'; % actual monte-carlo run number labels are sorted
data.color_value = randsample(1:10, 1000, true)';
% Create the scatter plot
scatter(data.time, data.mc, [] , data.color_value, 'filled')
colorbar('Ticks', unique(data.color_value))
% Always label your axes
xlabel('Time (s)')
ylabel('Monte-Carlo Run Number')
以下是此代码可能产生的内容的屏幕截图。如果color_value 是视频帧中看到的汽车数量,我们可以看到每次通过点更新这个值。但是,如果有线以正确的颜色将每个点连接到下一个点,则人类更容易阅读此图。这向查看者表明,该值会及时持续到下一次更新。
【问题讨论】:
-
在我看来,这对于 SO 来说听起来很笼统。您需要按照定义颜色箱的方式做一些事情,例如15-25,然后找到所述箱内的所有点并定义如何绘制线(所有点到所有点?顺序?Delaunay?)。然后将所有这些东西叠加在一起(对我来说听起来像是一团糟)。
-
我是否正确理解您的问题,即您想将所有蓝色(ish)点连接在一起(比如 1 到 4)、青色(比如 4 到 6)等等?
-
我希望每个点都有一条相同颜色的线在时间上向前移动,在下一个时间点结束。这有意义吗?
-
在您的示例中,每个“汽车”或颜色点每次都可以出现多次(我运行了您的代码并看到了它)那么时间的方向是什么?这个问题没有很好的定义。
标签: matlab