我有一个看起来像这样的矩阵:
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]);
我现在要做的是更进一步:我希望我的绘图中的每个点都以不同的颜色绘制,具体取决于包含矩阵中每一行信息的向量,例如:
我该怎么做?
编辑: 这就是我现在所拥有的(我现在使用四个标签,但它也没有使用三个标签):
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
答案 0 :(得分:1)
将散点图用于"点图": 修改:我已更新我的示例以使用更多颜色
d = [0.3234 0.5432
0.0283 0.432
0.1234 0.4562
0.4 0.5
0.3 0.46
0.2 0.5];
v= [1;3;1;2;5;4];
c = [1 0 0 #red (index 1)
0 1 0 #green (index 2)
0 0 1 #blue (index 3)
1 1 0 #yellow (index 4)
1 0 1]; #magenta (index 5)
scatter (d(:,1), d(:,2), 8, c(v, :), "filled")
grid on
print ("out.png")
d是你的数据,我添加了一行显示蓝点,v添加了"值矢量",c添加了一个颜色图,颜色需要是nx3 RGB矩阵。我添加了更多颜色。