【发布时间】:2014-09-12 09:55:32
【问题描述】:
我有一个如下所示的矩阵:
0.3234 0.5432
0.0283 0.432
0.1234 0.4562
...
还有一个向量,其中包含矩阵中每一行的值,如下所示:
1
3
1
2
...
我已经知道如何绘制我的点图:
plot(data(:,1), data(:,2), '.'), axis([0 1 0 1]);
我现在要做的是更进一步:我希望图中的每个点都以不同的颜色绘制,具体取决于包含矩阵中每条线的信息的向量,例如:
- 向量中的第一个条目是 1,[0.3234 0.5432] 处的点应为红色
- 向量中的第二个条目是 3,[0.0283 0.432] 处的点应为蓝色
- ...
我该怎么做?
编辑: 这就是我现在所拥有的(我现在使用四个标签,但它也不适用于三个):
labels = csvread('labels.txt');
c = [1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1];
scatter (data(:,1), data(:,2), 8, c(labels, :), "filled");
grid on
print ("out.png")
我收到了这个错误:
error: invalid value for array property "facevertexcdata"
error: called from:
error: /usr/share/octave/3.8.1/m/plot/draw/private/__scatter__.m at line 177, column 11
error: /usr/share/octave/3.8.1/m/plot/draw/scatter.m at line 86, column 10
error: /home/bryan/octave/test.m at line 64, column 1
【问题讨论】:
-
在我的示例中,c 是一个包含 RGB 颜色的矩阵,因此具有红色、绿色、蓝色 3 列。在上面的代码中,您为 c 创建了一个 4x4 矩阵,但它不起作用。