![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/185866/image.png)
Plot out of cell array with attributes
2 ビュー (過去 30 日間)
古いコメントを表示
Hi, at first here is my code:
x = zeros(1979,1);
y = zeros(1979,1);
B = cell(1979,1);
for i = 1 : 1979
x(i) = i;
y(i) = i;
if i > 150
B(i,1) = {'bs'};
else
B(i,1) = {'ks'};
end
end
plot(x,y,B(:));
so the x vector contains my x-coordinates and the y-vector my y-coordinates. Now for example I want to plot the first 150 as a blue square and the others should be a black square.
I now that I can do it with a for-loop but in my real case the attributes depend on a a lot of things. So I want to create a cell array which contains the color and the appearance of the marker for each coordinates and to plot it automatically without a for-loop.
I hope you understand what I want to do :)
7 件のコメント
Image Analyst
2016 年 11 月 23 日
I didn't say call scatter hundreds of times to plot hundreds of points point-by-point. I'm saying call it twice. However if you need a custom, unique, totally different pop-up context menu for every single one of the points, instead of one context menu that applies to any/all points, then I don't know - I've never done that before and doubt I'll ever need to do it in the future either. I can't envision any scenario where you'd need a different "context menu which is individual for every point."
回答 (1 件)
Nick Counts
2016 年 11 月 19 日
編集済み: Nick Counts
2016 年 11 月 19 日
I think you are looking for gscatter, which allows you to define a "group vector" and then define different styles for each group. It works sort of like logical indexing. There is good documentation, but here is an example:
x = 1:1979;
y = 1:1979;
% Make the group vector.
% The first 150 points are group 1
% The rest are group 2
group(1:150) = 1;
group(151:1979) = 2;
% The colors are assigned blue to 1, black to 2
% The marker styles are square to 1, circle to 2
gscatter(x, y, group, 'bk', 'so')
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/175568/image.png)
Hope this helps!
2 件のコメント
Image Analyst
2016 年 11 月 23 日
If you want to control a whole bunch more stuff on a data point-by-data point basis, you're going to have to plot it one data point at a time.
参考
カテゴリ
Help Center および File Exchange で Line Plots についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!