2

我想要的是:

绘图上不同颜色的点,并在图例中使用各自颜色的点。

我试过这个:

我创建了一个结构,其中包含点的 x、y 值。有了这些点,我希望在图像上绘制点,这样我就可以看到它们在哪里。但是,由于我使用的是结构,因此无法绘制出不同颜色的点。通过 for 循环,我试图哄 matlab 创建多个绘图,并希望创建不同的线条,然后我可以将它们分配给我选择的不同颜色。

代码:

img = imread('retinotopische map V1M Base clean.bmp');            

hold on;                     
image([0.825 4.61],[-2.85 ,-8.25],img);

for A =  1:B
    plot( [c(A).Lateral],[c(A).Bregma],'o','MarkerSize',10);    
    plot( [c(A).Lateral],[c(A).Bregma],'.','MarkerSize',10);    
end
4

2 回答 2

2

如果您只想要不同的颜色,则解决方案比您预期的要容易:

替换hold onhold all,matlab 会自动使用下一种颜色。

hold off编辑:如果您开始一个新的情节,您可能需要hold all再次调用以获得正确的起始位置。

于 2013-02-01T10:13:27.260 回答
1

您可以使用“颜色”选项更改颜色:

   img = imread('retinotopische map V1M Base clean.bmp');            

    hold on;                     
    image([0.825 4.61],[-2.85 ,-8.25],img);

    for A =  1:B
       plot( [c(A).Lateral],[c(A).Bregma],'o','MarkerSize',10, 'Color', [A/B, 0, 1 - A/B]);     
    end

'Color' 让您可以指定一个RGB 三元组,例如红色的 [1 0 0]。您可以使用它来绘制您想要的任何颜色。我的示例会将它们绘制成渐变,但您也可以使用完全不同rand(1, 3)的颜色来获取三元组?或者制作一个颜色矩阵,您可以在其中指定所需颜色的确切顺序,例如:

MyColours = [1 1 0;
             0 0 1;
             1 0 0;
             0.5 0.2 0.9]; %etc...

然后在你的 for 循环中:

plot( [c(A).Lateral],[c(A).Bregma],'o','MarkerSize',10, 'Color', MyColours(A, :));     
于 2013-02-01T10:03:46.930 回答